Merge pull request #23 from jboverfelt/sql-test
Test fixes
diff --git a/sql_test.go b/sql_test.go
index 83bac8c..4d26392 100644
--- a/sql_test.go
+++ b/sql_test.go
@@ -14,7 +14,8 @@
var byteTest []byte = Parse(stringTest)
var badTypeTest int = 6
var invalidTest string = "f47ac10b-58cc-0372-8567-0e02b2c3d4"
- var invalidByteTest []byte = Parse(invalidTest)
+
+ // sunny day tests
var uuid UUID
err := (&uuid).Scan(stringTest)
@@ -32,6 +33,8 @@
t.Fatal(err)
}
+ // bad type tests
+
err = (&uuid).Scan(badTypeTest)
if err == nil {
t.Error("int correctly parsed and shouldn't have")
@@ -40,6 +43,8 @@
t.Error("attempting to parse an int returned an incorrect error message")
}
+ // invalid/incomplete uuids
+
err = (&uuid).Scan(invalidTest)
if err == nil {
t.Error("invalid uuid was parsed without error")
@@ -48,11 +53,35 @@
t.Error("attempting to parse an invalid UUID returned an incorrect error message")
}
- err = (&uuid).Scan(invalidByteTest)
+ err = (&uuid).Scan(byteTest[:len(byteTest)-2])
if err == nil {
t.Error("invalid byte uuid was parsed without error")
}
if !strings.Contains(err.Error(), "invalid UUID") {
t.Error("attempting to parse an invalid byte UUID returned an incorrect error message")
}
+
+ // empty tests
+
+ uuid = nil
+ var emptySlice []byte
+ err = (&uuid).Scan(emptySlice)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if uuid != nil {
+ t.Error("UUID was not nil after scanning empty byte slice")
+ }
+
+ uuid = nil
+ var emptyString string
+ err = (&uuid).Scan(emptyString)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if uuid != nil {
+ t.Error("UUID was not nil after scanning empty string")
+ }
}