2
0

DRY tests

This commit is contained in:
Jack Christensen
2013-06-29 12:39:34 -05:00
parent 6ab233c6f9
commit b53b014b54
2 changed files with 56 additions and 169 deletions
+35 -92
View File
@@ -204,107 +204,50 @@ func TestSelectRow(t *testing.T) {
func TestConnectionSelectValue(t *testing.T) { func TestConnectionSelectValue(t *testing.T) {
conn := getSharedConnection() conn := getSharedConnection()
var v interface{}
var err error
v, err = conn.SelectValue("select null") test := func(sql string, expected interface{}) {
if err != nil { v, err := conn.SelectValue(sql)
t.Errorf("Unable to select null: %v", err) if err != nil {
} else { t.Errorf("%v while running %v", err, sql)
if v != nil { } else {
t.Errorf("Expected: nil, recieved: %v", v) if v != expected {
t.Errorf("Expected: %#v Received: %#v", expected, v)
}
} }
} }
v, err = conn.SelectValue("select 'foo'") test("select 'foo'", "foo")
if err != nil { test("select true", true)
t.Errorf("Unable to select string: %v", err) test("select false", false)
} else { test("select 1::int2", int16(1))
s, ok := v.(string) test("select 1::int4", int32(1))
if !(ok && s == "foo") { test("select 1::int8", int64(1))
t.Errorf("Expected: foo, recieved: %#v", v) test("select 1.23::float4", float32(1.23))
} test("select 1.23::float8", float64(1.23))
}
v, err = conn.SelectValue("select true")
if err != nil {
t.Errorf("Unable to select bool: %#v", err)
} else {
s, ok := v.(bool)
if !(ok && s == true) {
t.Errorf("Expected true, received: %#v", v)
}
}
v, err = conn.SelectValue("select false")
if err != nil {
t.Errorf("Unable to select bool: %v", err)
} else {
s, ok := v.(bool)
if !(ok && s == false) {
t.Errorf("Expected false, received: %#v", v)
}
}
v, err = conn.SelectValue("select 1::int2")
if err != nil {
t.Errorf("Unable to select int2: %v", err)
} else {
s, ok := v.(int16)
if !(ok && s == 1) {
t.Errorf("Expected 1, received: %#v", v)
}
}
v, err = conn.SelectValue("select 1::int4")
if err != nil {
t.Errorf("Unable to select int4: %v", err)
} else {
s, ok := v.(int32)
if !(ok && s == 1) {
t.Errorf("Expected 1, received: %#v", v)
}
}
v, err = conn.SelectValue("select 1::int8")
if err != nil {
t.Errorf("Unable to select int8: %#v", err)
} else {
s, ok := v.(int64)
if !(ok && s == 1) {
t.Errorf("Expected 1, received: %#v", v)
}
}
v, err = conn.SelectValue("select 1.23::float4")
if err != nil {
t.Errorf("Unable to select float4: %#v", err)
} else {
s, ok := v.(float32)
if !(ok && s == float32(1.23)) {
t.Errorf("Expected 1.23, received: %#v", v)
}
}
} }
func TestSelectValues(t *testing.T) { func TestSelectValues(t *testing.T) {
conn := getSharedConnection() conn := getSharedConnection()
var values []interface{}
var err error
values, err = conn.SelectValues("select * from (values ('Matthew'), ('Mark'), ('Luke'), ('John')) t") test := func(sql string, expected []interface{}) {
if err != nil { values, err := conn.SelectValues(sql)
t.Fatalf("Unable to select all strings: %v", err) if err != nil {
} t.Errorf("%v while running %v", err, sql)
if values[0].(string) != "Matthew" || values[1].(string) != "Mark" || values[2].(string) != "Luke" || values[3].(string) != "John" { return
t.Error("Received incorrect strings") }
if len(values) != len(expected) {
t.Errorf("Expected: %#v Received: %#v", expected, values)
return
}
for i := 0; i < len(values); i++ {
if values[i] != expected[i] {
t.Errorf("Expected: %#v Received: %#v", expected, values)
return
}
}
} }
values, err = conn.SelectValues("select * from (values ('Matthew'), (null)) t") test("select * from (values ('Matthew'), ('Mark'), ('Luke'), ('John')) t", []interface{}{"Matthew", "Mark", "Luke", "John"})
if err != nil { test("select * from (values ('Matthew'), (null)) t", []interface{}{"Matthew", nil})
t.Fatalf("Unable to select values including a null: %v", err) test("select * from (values (1::int4), (2::int4), (null), (3::int4)) t", []interface{}{int32(1), int32(2), nil, int32(3)})
}
if values[0].(string) != "Matthew" || values[1] != nil {
t.Error("Received incorrect strings")
}
} }
+21 -77
View File
@@ -6,87 +6,31 @@ import (
func TestDataRowReaderReadValue(t *testing.T) { func TestDataRowReaderReadValue(t *testing.T) {
conn := getSharedConnection() conn := getSharedConnection()
var v interface{}
var err error
onDataRow := func(r *DataRowReader) error { test := func(sql string, expected interface{}) {
v = r.ReadValue() var v interface{}
return nil
}
err = conn.SelectFunc("select null", onDataRow) onDataRow := func(r *DataRowReader) error {
if err != nil { v = r.ReadValue()
t.Fatalf("Select failed: %v", err) return nil
} }
if v != nil {
t.Errorf("Wrong value returned: %v", v)
}
err = conn.SelectFunc("select 'Jack'", onDataRow) err := conn.SelectFunc(sql, onDataRow)
if err != nil { if err != nil {
t.Fatalf("Select failed: %v", err) t.Fatalf("Select failed: %v", err)
} }
if typedValue, _ := v.(string); typedValue != "Jack" { if v != expected {
t.Errorf("Wrong value returned: %v", typedValue) t.Errorf("Expected: %#v Received: %#v", expected, v)
}
err = conn.SelectFunc("select true", onDataRow)
if err != nil {
t.Errorf("Unable to select bool: %#v", err)
} else {
s, ok := v.(bool)
if !(ok && s == true) {
t.Errorf("Expected true, received: %#v", v)
} }
} }
err = conn.SelectFunc("select false", onDataRow) test("select null", nil)
if err != nil { test("select 'Jack'", "Jack")
t.Errorf("Unable to select bool: %v", err) test("select true", true)
} else { test("select false", false)
s, ok := v.(bool) test("select 1::int2", int16(1))
if !(ok && s == false) { test("select 1::int4", int32(1))
t.Errorf("Expected false, received: %#v", v) test("select 1::int8", int64(1))
} test("select 1.23::float4", float32(1.23))
} test("select 1.23::float8", float64(1.23))
err = conn.SelectFunc("select 1::int2", onDataRow)
if err != nil {
t.Errorf("Unable to select int2: %v", err)
} else {
s, ok := v.(int16)
if !(ok && s == 1) {
t.Errorf("Expected 1, received: %#v", v)
}
}
err = conn.SelectFunc("select 1::int4", onDataRow)
if err != nil {
t.Errorf("Unable to select int4: %v", err)
} else {
s, ok := v.(int32)
if !(ok && s == 1) {
t.Errorf("Expected 1, received: %#v", v)
}
}
err = conn.SelectFunc("select 1::int8", onDataRow)
if err != nil {
t.Errorf("Unable to select int8: %#v", err)
} else {
s, ok := v.(int64)
if !(ok && s == 1) {
t.Errorf("Expected 1, received: %#v", v)
}
}
err = conn.SelectFunc("select 1.23::float4", onDataRow)
if err != nil {
t.Errorf("Unable to select float4: %#v", err)
} else {
s, ok := v.(float32)
if !(ok && s == float32(1.23)) {
t.Errorf("Expected 1.23, received: %#v", v)
}
}
} }