@@ -94,3 +94,87 @@ func (*Suite) TestPreAuthKeyDoesNotExist(c *check.C) {
9494 c .Assert (err , check .Equals , errorAuthKeyNotFound )
9595 c .Assert (p , check .IsNil )
9696}
97+
98+ func (* Suite ) TestValidateKeyOk (c * check.C ) {
99+ n , err := h .CreateNamespace ("test3" )
100+ c .Assert (err , check .IsNil )
101+
102+ pak , err := h .CreatePreAuthKey (n .Name , true , nil )
103+ c .Assert (err , check .IsNil )
104+
105+ p , err := h .checkKeyValidity (pak .Key )
106+ c .Assert (err , check .IsNil )
107+ c .Assert (p .ID , check .Equals , pak .ID )
108+ }
109+
110+ func (* Suite ) TestAlreadyUsedKey (c * check.C ) {
111+ n , err := h .CreateNamespace ("test4" )
112+ c .Assert (err , check .IsNil )
113+
114+ pak , err := h .CreatePreAuthKey (n .Name , false , nil )
115+ c .Assert (err , check .IsNil )
116+
117+ db , err := h .db ()
118+ if err != nil {
119+ c .Fatal (err )
120+ }
121+ defer db .Close ()
122+ m := Machine {
123+ ID : 0 ,
124+ MachineKey : "foo" ,
125+ NodeKey : "bar" ,
126+ DiscoKey : "faa" ,
127+ Name : "testest" ,
128+ NamespaceID : n .ID ,
129+ Registered : true ,
130+ RegisterMethod : "authKey" ,
131+ AuthKeyID : uint (pak .ID ),
132+ }
133+ db .Save (& m )
134+
135+ p , err := h .checkKeyValidity (pak .Key )
136+ c .Assert (err , check .Equals , errorAuthKeyNotReusableAlreadyUsed )
137+ c .Assert (p , check .IsNil )
138+ }
139+
140+ func (* Suite ) TestReusableBeingUsedKey (c * check.C ) {
141+ n , err := h .CreateNamespace ("test5" )
142+ c .Assert (err , check .IsNil )
143+
144+ pak , err := h .CreatePreAuthKey (n .Name , true , nil )
145+ c .Assert (err , check .IsNil )
146+
147+ db , err := h .db ()
148+ if err != nil {
149+ c .Fatal (err )
150+ }
151+ defer db .Close ()
152+ m := Machine {
153+ ID : 1 ,
154+ MachineKey : "foo" ,
155+ NodeKey : "bar" ,
156+ DiscoKey : "faa" ,
157+ Name : "testest" ,
158+ NamespaceID : n .ID ,
159+ Registered : true ,
160+ RegisterMethod : "authKey" ,
161+ AuthKeyID : uint (pak .ID ),
162+ }
163+ db .Save (& m )
164+
165+ p , err := h .checkKeyValidity (pak .Key )
166+ c .Assert (err , check .IsNil )
167+ c .Assert (p .ID , check .Equals , pak .ID )
168+ }
169+
170+ func (* Suite ) TestNotReusableNotBeingUsedKey (c * check.C ) {
171+ n , err := h .CreateNamespace ("test6" )
172+ c .Assert (err , check .IsNil )
173+
174+ pak , err := h .CreatePreAuthKey (n .Name , false , nil )
175+ c .Assert (err , check .IsNil )
176+
177+ p , err := h .checkKeyValidity (pak .Key )
178+ c .Assert (err , check .IsNil )
179+ c .Assert (p .ID , check .Equals , pak .ID )
180+ }
0 commit comments