@@ -25,7 +25,56 @@ func makeRandomNodeID(t *testing.T) types.NodeID {
25
25
return types .NodeID (id )
26
26
}
27
27
28
+ func TestStateStore_GetNodeID (t * testing.T ) {
29
+ s := testStateStore (t )
30
+ _ , out , err := s .GetNodeID (types .NodeID ("wrongId" ))
31
+ if err == nil || out != nil || ! strings .Contains (err .Error (), "node lookup by ID failed: UUID must be 36 characters" ) {
32
+ t .Fatalf ("want an error, nil value, err:=%q ; out:=%q" , err .Error (), out )
33
+ }
34
+ _ , out , err = s .GetNodeID (types .NodeID ("0123456789abcdefghijklmnopqrstuvwxyz" ))
35
+ if err == nil || out != nil || ! strings .Contains (err .Error (), "node lookup by ID failed: wrong UUID format" ) {
36
+ t .Fatalf ("want an error, nil value, err:=%q ; out:=%q" , err , out )
37
+ }
38
+
39
+ _ , out , err = s .GetNodeID (types .NodeID ("00a916bc-a357-4a19-b886-59419fcee50Z" ))
40
+ if err == nil || out != nil || ! strings .Contains (err .Error (), "node lookup by ID failed: encoding/hex: invalid byte" ) {
41
+ t .Fatalf ("want an error, nil value, err:=%q ; out:=%q" , err , out )
42
+ }
43
+
44
+ _ , out , err = s .GetNodeID (types .NodeID ("00a916bc-a357-4a19-b886-59419fcee506" ))
45
+ if err != nil || out != nil {
46
+ t .Fatalf ("do not want any error nor returned value, err:=%q ; out:=%q" , err , out )
47
+ }
48
+
49
+ nodeID := types .NodeID ("00a916bc-a357-4a19-b886-59419fceeaaa" )
50
+ req := & structs.RegisterRequest {
51
+ ID : nodeID ,
52
+ Node : "node1" ,
53
+ Address : "1.2.3.4" ,
54
+ }
55
+ if err := s .EnsureRegistration (1 , req ); err != nil {
56
+ t .Fatalf ("err: %s" , err )
57
+ }
58
+
59
+ _ , out , err = s .GetNodeID (nodeID )
60
+ if err != nil {
61
+ t .Fatalf ("got err %s want nil" , err )
62
+ }
63
+ if out == nil || out .ID != nodeID {
64
+ t .Fatalf ("out should not be nil and contain nodeId, but was:=%#q" , out )
65
+ }
66
+ // Case insensitive lookup should work as well
67
+ _ , out , err = s .GetNodeID (types .NodeID ("00a916bC-a357-4a19-b886-59419fceeAAA" ))
68
+ if err != nil {
69
+ t .Fatalf ("got err %s want nil" , err )
70
+ }
71
+ if out == nil || out .ID != nodeID {
72
+ t .Fatalf ("out should not be nil and contain nodeId, but was:=%#q" , out )
73
+ }
74
+ }
75
+
28
76
func TestStateStore_EnsureRegistration (t * testing.T ) {
77
+ t .Parallel ()
29
78
s := testStateStore (t )
30
79
31
80
// Start with just a node.
@@ -70,19 +119,6 @@ func TestStateStore_EnsureRegistration(t *testing.T) {
70
119
if got , want := out , out2 ; ! verify .Values (t , "GetNodeID" , got , want ) {
71
120
t .FailNow ()
72
121
}
73
- _ , out3 , err := s .GetNodeID (types .NodeID ("wrongId" ))
74
- if err == nil || out3 != nil || ! strings .Contains (err .Error (), "node lookup by ID failed: UUID must be 36 characters" ) {
75
- t .Fatalf ("want an error, nil value, err:=%q ; out3:=%q" , err .Error (), out3 )
76
- }
77
- _ , out3 , err = s .GetNodeID (types .NodeID ("0123456789abcdefghijklmnopqrstuvwxyz" ))
78
- if err == nil || out3 != nil || ! strings .Contains (err .Error (), "node lookup by ID failed: wrong UUID format" ) {
79
- t .Fatalf ("want an error, nil value, err:=%q ; out3:=%q" , err , out3 )
80
- }
81
-
82
- _ , out3 , err = s .GetNodeID (types .NodeID ("00a916bc-a357-4a19-b886-59419fcee50Z" ))
83
- if err == nil || out3 != nil || ! strings .Contains (err .Error (), "node lookup by ID failed: encoding/hex: invalid byte" ) {
84
- t .Fatalf ("want an error, nil value, err:=%q ; out3:=%q" , err , out3 )
85
- }
86
122
}
87
123
verifyNode ()
88
124
0 commit comments