@@ -244,11 +244,13 @@ func TestListPublicKeys(t *testing.T) {
244244}
245245
246246func TestGetPublicKeys (t * testing.T ) {
247- mock := & storemock.Store {}
247+ storeMock := & storemock.Store {}
248+ queryOptionsMock := new (storemock.QueryOptions )
249+ storeMock .On ("Options" ).Return (queryOptionsMock )
248250
249251 clockMock .On ("Now" ).Return (now ).Twice ()
250252
251- s := NewService (store .Store (mock ), privateKey , publicKey , storecache .NewNullCache (), clientMock )
253+ s := NewService (store .Store (storeMock ), privateKey , publicKey , storecache .NewNullCache (), clientMock )
252254
253255 ctx := context .TODO ()
254256
@@ -271,7 +273,7 @@ func TestGetPublicKeys(t *testing.T) {
271273 fingerprint : "fingerprint" ,
272274 tenantID : InvalidTenantID ,
273275 requiredMocks : func () {
274- mock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , InvalidTenantID ).Return (nil , errors .New ("error" , "" , 0 )).Once ()
276+ storeMock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , InvalidTenantID ).Return (nil , errors .New ("error" , "" , 0 )).Once ()
275277 },
276278 expected : Expected {nil , NewErrNamespaceNotFound (InvalidTenantID , errors .New ("error" , "" , 0 ))},
277279 },
@@ -283,8 +285,12 @@ func TestGetPublicKeys(t *testing.T) {
283285 requiredMocks : func () {
284286 namespace := models.Namespace {TenantID : "tenant1" }
285287
286- mock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , namespace .TenantID ).Return (& namespace , nil ).Once ()
287- mock .On ("PublicKeyGet" , ctx , InvalidFingerprint , "tenant1" ).Return (nil , errors .New ("error" , "" , 0 )).Once ()
288+ storeMock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , namespace .TenantID ).Return (& namespace , nil ).Once ()
289+ queryOptionsMock .
290+ On ("InNamespace" , "tenant1" ).
291+ Return (nil ).
292+ Once ()
293+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , InvalidFingerprint , mock .AnythingOfType ("store.QueryOption" )).Return (nil , errors .New ("error" , "" , 0 )).Once ()
288294 },
289295 expected : Expected {nil , errors .New ("error" , "" , 0 )},
290296 },
@@ -298,8 +304,12 @@ func TestGetPublicKeys(t *testing.T) {
298304 key := models.PublicKey {
299305 Data : []byte ("teste" ), Fingerprint : "fingerprint" , CreatedAt : clock .Now (), TenantID : "tenant1" , PublicKeyFields : models.PublicKeyFields {Name : "teste" },
300306 }
301- mock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , namespace .TenantID ).Return (& namespace , nil ).Once ()
302- mock .On ("PublicKeyGet" , ctx , "fingerprint" , "tenant1" ).Return (& key , nil ).Once ()
307+ storeMock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , namespace .TenantID ).Return (& namespace , nil ).Once ()
308+ queryOptionsMock .
309+ On ("InNamespace" , "tenant1" ).
310+ Return (nil ).
311+ Once ()
312+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).Return (& key , nil ).Once ()
303313 },
304314 expected : Expected {& models.PublicKey {
305315 Data : []byte ("teste" ), Fingerprint : "fingerprint" , CreatedAt : clock .Now (), TenantID : "tenant1" , PublicKeyFields : models.PublicKeyFields {Name : "teste" },
@@ -315,7 +325,7 @@ func TestGetPublicKeys(t *testing.T) {
315325 })
316326 }
317327
318- mock .AssertExpectations (t )
328+ storeMock .AssertExpectations (t )
319329}
320330
321331func TestUpdatePublicKeys (t * testing.T ) {
@@ -350,7 +360,11 @@ func TestUpdatePublicKeys(t *testing.T) {
350360 },
351361 },
352362 requiredMocks : func () {
353- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , "tenant" ).Return (nil , store .ErrNoDocuments ).Once ()
363+ queryOptionsMock .
364+ On ("InNamespace" , "tenant" ).
365+ Return (nil ).
366+ Once ()
367+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).Return (nil , store .ErrNoDocuments ).Once ()
354368 },
355369 expected : Expected {nil , NewErrPublicKeyNotFound ("fingerprint" , store .ErrNoDocuments )},
356370 },
@@ -368,11 +382,11 @@ func TestUpdatePublicKeys(t *testing.T) {
368382 Fingerprint : "fingerprint" ,
369383 TenantID : "tenant" ,
370384 }
371- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , "tenant" ).Return (existingKey , nil ).Once ()
372385 queryOptionsMock .
373386 On ("InNamespace" , "tenant" ).
374387 Return (nil ).
375- Once ()
388+ Twice ()
389+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).Return (existingKey , nil ).Once ()
376390 storeMock .On ("TagList" , ctx , mock .AnythingOfType ("store.QueryOption" )).Return (nil , 0 , errors .New ("error" , "" , 0 )).Once ()
377391 },
378392 expected : Expected {nil , NewErrTagEmpty ("tenant" , errors .New ("error" , "" , 0 ))},
@@ -395,11 +409,11 @@ func TestUpdatePublicKeys(t *testing.T) {
395409 {ID : "tag1_id" , Name : "tag1" , TenantID : "tenant" },
396410 {ID : "tag4_id" , Name : "tag4" , TenantID : "tenant" },
397411 }
398- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , "tenant" ).Return (existingKey , nil ).Once ()
399412 queryOptionsMock .
400413 On ("InNamespace" , "tenant" ).
401414 Return (nil ).
402- Once ()
415+ Twice ()
416+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).Return (existingKey , nil ).Once ()
403417 storeMock .On ("TagList" , ctx , mock .AnythingOfType ("store.QueryOption" )).Return (tags , len (tags ), nil ).Once ()
404418 },
405419 expected : Expected {nil , NewErrTagNotFound ("tag2" , nil )},
@@ -430,11 +444,11 @@ func TestUpdatePublicKeys(t *testing.T) {
430444 expectedKey .Filter .TagIDs = []string {"tag1_id" , "tag2_id" }
431445 expectedKey .Filter .Tags = nil
432446
433- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , "tenant" ).Return (existingKey , nil ).Once ()
434447 queryOptionsMock .
435448 On ("InNamespace" , "tenant" ).
436449 Return (nil ).
437- Once ()
450+ Twice ()
451+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).Return (existingKey , nil ).Once ()
438452 storeMock .On ("TagList" , ctx , mock .AnythingOfType ("store.QueryOption" )).Return (tags , len (tags ), nil ).Once ()
439453 storeMock .On ("PublicKeyUpdate" , ctx , & expectedKey ).Return (errors .New ("error" , "" , 0 )).Once ()
440454 },
@@ -476,14 +490,14 @@ func TestUpdatePublicKeys(t *testing.T) {
476490 },
477491 }
478492
479- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , "tenant" ).Return (existingKey , nil ).Once ()
480493 queryOptionsMock .
481494 On ("InNamespace" , "tenant" ).
482495 Return (nil ).
483- Once ()
496+ Times (3 )
497+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).Return (existingKey , nil ).Once ()
484498 storeMock .On ("TagList" , ctx , mock .AnythingOfType ("store.QueryOption" )).Return (tags , len (tags ), nil ).Once ()
485499 storeMock .On ("PublicKeyUpdate" , ctx , & expectedKey ).Return (nil ).Once ()
486- storeMock .On ("PublicKeyGet " , ctx , "fingerprint" , "tenant" ).Return (updatedKey , nil ).Once ()
500+ storeMock .On ("PublicKeyResolve " , ctx , store . PublicKeyFingerprintResolver , "fingerprint" , mock . AnythingOfType ( "store.QueryOption" ) ).Return (updatedKey , nil ).Once ()
487501 },
488502 expected : Expected {& models.PublicKey {
489503 Fingerprint : "fingerprint" ,
@@ -528,9 +542,13 @@ func TestUpdatePublicKeys(t *testing.T) {
528542 },
529543 }
530544
531- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , "tenant" ).Return (existingKey , nil ).Once ()
545+ queryOptionsMock .
546+ On ("InNamespace" , "tenant" ).
547+ Return (nil ).
548+ Twice ()
549+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).Return (existingKey , nil ).Once ()
532550 storeMock .On ("PublicKeyUpdate" , ctx , & expectedKey ).Return (nil ).Once ()
533- storeMock .On ("PublicKeyGet " , ctx , "fingerprint" , "tenant" ).Return (updatedKey , nil ).Once ()
551+ storeMock .On ("PublicKeyResolve " , ctx , store . PublicKeyFingerprintResolver , "fingerprint" , mock . AnythingOfType ( "store.QueryOption" ) ).Return (updatedKey , nil ).Once ()
534552 },
535553 expected : Expected {& models.PublicKey {
536554 Fingerprint : "fingerprint" ,
@@ -558,6 +576,8 @@ func TestUpdatePublicKeys(t *testing.T) {
558576
559577func TestDeletePublicKeys (t * testing.T ) {
560578 storeMock := new (storemock.Store )
579+ queryOptionsMock := new (storemock.QueryOptions )
580+ storeMock .On ("Options" ).Return (queryOptionsMock )
561581
562582 ctx := context .TODO ()
563583
@@ -596,7 +616,11 @@ func TestDeletePublicKeys(t *testing.T) {
596616 namespace := & models.Namespace {TenantID : "tenant1" }
597617
598618 storeMock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , namespace .TenantID ).Return (namespace , nil ).Once ()
599- storeMock .On ("PublicKeyGet" , ctx , InvalidFingerprint , namespace .TenantID ).
619+ queryOptionsMock .
620+ On ("InNamespace" , "tenant1" ).
621+ Return (nil ).
622+ Once ()
623+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , InvalidFingerprint , mock .AnythingOfType ("store.QueryOption" )).
600624 Return (nil , errors .New ("error" , "" , 0 )).Once ()
601625 },
602626 expected : Expected {NewErrPublicKeyNotFound (InvalidFingerprint , errors .New ("error" , "" , 0 ))},
@@ -617,7 +641,11 @@ func TestDeletePublicKeys(t *testing.T) {
617641 }
618642
619643 storeMock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , namespace .TenantID ).Return (namespace , nil ).Once ()
620- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , namespace .TenantID ).
644+ queryOptionsMock .
645+ On ("InNamespace" , "tenant1" ).
646+ Return (nil ).
647+ Once ()
648+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).
621649 Return (publicKey , nil ).Once ()
622650 storeMock .On ("PublicKeyDelete" , ctx , publicKey ).
623651 Return (errors .New ("error" , "" , 0 )).Once ()
@@ -640,7 +668,11 @@ func TestDeletePublicKeys(t *testing.T) {
640668 }
641669
642670 storeMock .On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , namespace .TenantID ).Return (namespace , nil ).Once ()
643- storeMock .On ("PublicKeyGet" , ctx , "fingerprint" , namespace .TenantID ).
671+ queryOptionsMock .
672+ On ("InNamespace" , "tenant1" ).
673+ Return (nil ).
674+ Once ()
675+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , "fingerprint" , mock .AnythingOfType ("store.QueryOption" )).
644676 Return (publicKey , nil ).Once ()
645677 storeMock .On ("PublicKeyDelete" , ctx , publicKey ).Return (nil ).Once ()
646678 },
@@ -772,7 +804,11 @@ func TestCreatePublicKeys(t *testing.T) {
772804 },
773805 }
774806
775- storeMock .On ("PublicKeyGet" , ctx , keyWithHostname .Fingerprint , "tenant" ).Return (nil , errors .New ("error" , "" , 0 )).Once ()
807+ queryOptionsMock .
808+ On ("InNamespace" , "tenant" ).
809+ Return (nil ).
810+ Once ()
811+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , keyWithHostname .Fingerprint , mock .AnythingOfType ("store.QueryOption" )).Return (nil , errors .New ("error" , "" , 0 )).Once ()
776812 },
777813 expected : Expected {nil , NewErrPublicKeyNotFound (requests.PublicKeyCreate {
778814 Data : ssh .MarshalAuthorizedKey (pubKey ),
@@ -816,7 +852,11 @@ func TestCreatePublicKeys(t *testing.T) {
816852 },
817853 }
818854
819- storeMock .On ("PublicKeyGet" , ctx , keyWithHostname .Fingerprint , "tenant" ).Return (& keyWithHostnameModel , nil ).Once ()
855+ queryOptionsMock .
856+ On ("InNamespace" , "tenant" ).
857+ Return (nil ).
858+ Once ()
859+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , keyWithHostname .Fingerprint , mock .AnythingOfType ("store.QueryOption" )).Return (& keyWithHostnameModel , nil ).Once ()
820860 },
821861 expected : Expected {nil , NewErrPublicKeyDuplicated ([]string {ssh .FingerprintLegacyMD5 (pubKey )}, nil )},
822862 },
@@ -854,7 +894,11 @@ func TestCreatePublicKeys(t *testing.T) {
854894 },
855895 }
856896
857- storeMock .On ("PublicKeyGet" , ctx , keyWithHostname .Fingerprint , "tenant" ).Return (nil , store .ErrNoDocuments ).Once ()
897+ queryOptionsMock .
898+ On ("InNamespace" , "tenant" ).
899+ Return (nil ).
900+ Once ()
901+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , keyWithHostname .Fingerprint , mock .AnythingOfType ("store.QueryOption" )).Return (nil , store .ErrNoDocuments ).Once ()
858902 storeMock .On ("PublicKeyCreate" , ctx , & keyWithHostnameModel ).Return ("" , errors .New ("error" , "" , 0 )).Once ()
859903 },
860904 expected : Expected {nil , errors .New ("error" , "" , 0 )},
@@ -893,7 +937,11 @@ func TestCreatePublicKeys(t *testing.T) {
893937 },
894938 }
895939
896- storeMock .On ("PublicKeyGet" , ctx , keyWithHostname .Fingerprint , "tenant" ).Return (nil , store .ErrNoDocuments ).Once ()
940+ queryOptionsMock .
941+ On ("InNamespace" , "tenant" ).
942+ Return (nil ).
943+ Once ()
944+ storeMock .On ("PublicKeyResolve" , ctx , store .PublicKeyFingerprintResolver , keyWithHostname .Fingerprint , mock .AnythingOfType ("store.QueryOption" )).Return (nil , store .ErrNoDocuments ).Once ()
897945 storeMock .On ("PublicKeyCreate" , ctx , & keyWithHostnameModel ).Return (ssh .FingerprintLegacyMD5 (pubKey ), nil ).Once ()
898946 },
899947 expected : Expected {& responses.PublicKeyCreate {
@@ -949,9 +997,9 @@ func TestCreatePublicKeys(t *testing.T) {
949997 queryOptionsMock .
950998 On ("InNamespace" , "tenant" ).
951999 Return (nil ).
952- Once ()
1000+ Twice ()
9531001 storeMock .On ("TagList" , ctx , mock .AnythingOfType ("store.QueryOption" )).Return (tags , len (tags ), nil ).Once ()
954- storeMock .On ("PublicKeyGet " , ctx , keyWithTags .Fingerprint , "tenant" ).Return (nil , store .ErrNoDocuments ).Once ()
1002+ storeMock .On ("PublicKeyResolve " , ctx , store . PublicKeyFingerprintResolver , keyWithTags .Fingerprint , mock . AnythingOfType ( "store.QueryOption" ) ).Return (nil , store .ErrNoDocuments ).Once ()
9551003 storeMock .On ("PublicKeyCreate" , ctx , & keyWithTagsModel ).Return ("" , errors .New ("error" , "" , 0 )).Once ()
9561004 },
9571005 expected : Expected {nil , errors .New ("error" , "" , 0 )},
@@ -997,9 +1045,9 @@ func TestCreatePublicKeys(t *testing.T) {
9971045 queryOptionsMock .
9981046 On ("InNamespace" , "tenant" ).
9991047 Return (nil ).
1000- Once ()
1048+ Twice ()
10011049 storeMock .On ("TagList" , ctx , mock .AnythingOfType ("store.QueryOption" )).Return (tags , len (tags ), nil ).Once ()
1002- storeMock .On ("PublicKeyGet " , ctx , keyWithTags .Fingerprint , "tenant" ).Return (nil , store .ErrNoDocuments ).Once ()
1050+ storeMock .On ("PublicKeyResolve " , ctx , store . PublicKeyFingerprintResolver , keyWithTags .Fingerprint , mock . AnythingOfType ( "store.QueryOption" ) ).Return (nil , store .ErrNoDocuments ).Once ()
10031051 storeMock .On ("PublicKeyCreate" , ctx , & keyWithTagsModel ).Return (ssh .FingerprintLegacyMD5 (pubKey ), nil ).Once ()
10041052 },
10051053 expected : Expected {& responses.PublicKeyCreate {
0 commit comments