github.com/cloudfoundry-attic/ltc@v0.0.0-20151123212628-098adc7919fc/config/target_verifier/target_verifier_test.go (about) 1 package target_verifier_test 2 3 import ( 4 "errors" 5 6 . "github.com/onsi/ginkgo" 7 . "github.com/onsi/gomega" 8 9 "github.com/cloudfoundry-incubator/ltc/config/target_verifier" 10 "github.com/cloudfoundry-incubator/ltc/receptor_client/fake_receptor_client_creator" 11 "github.com/cloudfoundry-incubator/receptor" 12 "github.com/cloudfoundry-incubator/receptor/fake_receptor" 13 ) 14 15 var _ = Describe("TargetVerifier", func() { 16 Describe("VerifyTarget", func() { 17 var ( 18 fakeReceptorClient *fake_receptor.FakeClient 19 fakeReceptorClientCreator *fake_receptor_client_creator.FakeCreator 20 targetVerifier target_verifier.TargetVerifier 21 ) 22 23 BeforeEach(func() { 24 fakeReceptorClient = &fake_receptor.FakeClient{} 25 fakeReceptorClientCreator = &fake_receptor_client_creator.FakeCreator{} 26 fakeReceptorClientCreator.CreateReceptorClientReturns(fakeReceptorClient) 27 targetVerifier = target_verifier.New(fakeReceptorClientCreator) 28 }) 29 30 It("returns up=true, auth=true if the receptor does not return an error", func() { 31 up, auth, err := targetVerifier.VerifyTarget("http://receptor.mylattice.com") 32 Expect(err).NotTo(HaveOccurred()) 33 Expect(up).To(BeTrue()) 34 Expect(auth).To(BeTrue()) 35 Expect(fakeReceptorClientCreator.CreateReceptorClientCallCount()).To(Equal(1)) 36 Expect(fakeReceptorClientCreator.CreateReceptorClientArgsForCall(0)).To(Equal("http://receptor.mylattice.com")) 37 }) 38 39 It("returns up=true, auth=false if the receptor returns an authorization error", func() { 40 fakeReceptorClient.DesiredLRPsReturns([]receptor.DesiredLRPResponse{}, receptor.Error{ 41 Type: receptor.Unauthorized, 42 Message: "Go home. You're not welcome here.", 43 }) 44 45 up, auth, err := targetVerifier.VerifyTarget("http://receptor.mylattice.com") 46 Expect(err).NotTo(HaveOccurred()) 47 Expect(up).To(BeTrue()) 48 Expect(auth).To(BeFalse()) 49 }) 50 51 It("returns up=true, auth=false, err=(the bubbled up error) if there is a receptor error other than unauthorized", func() { 52 fakeReceptorClient.DesiredLRPsReturns([]receptor.DesiredLRPResponse{}, receptor.Error{ 53 Type: receptor.UnknownError, 54 Message: "It all happened so fast... I just dunno what went wrong.", 55 }) 56 57 up, auth, err := targetVerifier.VerifyTarget("http://receptor.mylattice.com") 58 Expect(err).To(BeAssignableToTypeOf(receptor.Error{})) 59 Expect(err).To(MatchError("It all happened so fast... I just dunno what went wrong.")) 60 Expect(up).To(BeTrue()) 61 Expect(auth).To(BeFalse()) 62 }) 63 64 // TODO: receptor really shouldn't give us non-receptor.Error 65 It("returns up=false, auth=false, err=(the bubbled up error) if there is a non-receptor error", func() { 66 fakeReceptorClient.DesiredLRPsReturns([]receptor.DesiredLRPResponse{}, errors.New("Couldn't connect to the receptor.")) 67 68 up, auth, err := targetVerifier.VerifyTarget("http://receptor.my-borked-lattice.com") 69 Expect(err).To(MatchError("Couldn't connect to the receptor.")) 70 Expect(up).To(BeFalse()) 71 Expect(auth).To(BeFalse()) 72 }) 73 }) 74 })