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")
+	}
 }