...
1 package semver
2
3 import (
4 "testing"
5 )
6
7 type scanTest struct {
8 val interface{}
9 shouldError bool
10 expected string
11 }
12
13 var scanTests = []scanTest{
14 {"1.2.3", false, "1.2.3"},
15 {[]byte("1.2.3"), false, "1.2.3"},
16 {7, true, ""},
17 {7e4, true, ""},
18 {true, true, ""},
19 }
20
21 func TestScanString(t *testing.T) {
22 for _, tc := range scanTests {
23 s := &Version{}
24 err := s.Scan(tc.val)
25 if tc.shouldError {
26 if err == nil {
27 t.Fatalf("Scan did not return an error on %v (%T)", tc.val, tc.val)
28 }
29 } else {
30 if err != nil {
31 t.Fatalf("Scan returned an unexpected error: %s (%T) on %v (%T)", tc.val, tc.val, tc.val, tc.val)
32 }
33 if val, _ := s.Value(); val != tc.expected {
34 t.Errorf("Wrong Value returned, expected %q, got %q", tc.expected, val)
35 }
36 }
37 }
38 }
39
View as plain text