OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / github.com / pborman / uuid / sql_test.go
diff --git a/vendor/github.com/pborman/uuid/sql_test.go b/vendor/github.com/pborman/uuid/sql_test.go
new file mode 100644 (file)
index 0000000..1030951
--- /dev/null
@@ -0,0 +1,96 @@
+// Copyright 2015 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import (
+       "strings"
+       "testing"
+)
+
+func TestScan(t *testing.T) {
+       var stringTest string = "f47ac10b-58cc-0372-8567-0e02b2c3d479"
+       var byteTest []byte = Parse(stringTest)
+       var badTypeTest int = 6
+       var invalidTest string = "f47ac10b-58cc-0372-8567-0e02b2c3d4"
+
+       // sunny day tests
+
+       var uuid UUID
+       err := (&uuid).Scan(stringTest)
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       err = (&uuid).Scan([]byte(stringTest))
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       err = (&uuid).Scan(byteTest)
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       // bad type tests
+
+       err = (&uuid).Scan(badTypeTest)
+       if err == nil {
+               t.Error("int correctly parsed and shouldn't have")
+       }
+       if !strings.Contains(err.Error(), "unable to scan type") {
+               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")
+       }
+       if !strings.Contains(err.Error(), "invalid UUID") {
+               t.Error("attempting to parse an invalid UUID returned an incorrect error message")
+       }
+
+       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")
+       }
+}
+
+func TestValue(t *testing.T) {
+       stringTest := "f47ac10b-58cc-0372-8567-0e02b2c3d479"
+       uuid := Parse(stringTest)
+       val, _ := uuid.Value()
+       if val != stringTest {
+               t.Error("Value() did not return expected string")
+       }
+}