1package iam_test 2 3import ( 4 "errors" 5 6 "github.com/aws/aws-sdk-go/aws" 7 "github.com/genevieve/leftovers/aws/iam" 8 "github.com/genevieve/leftovers/aws/iam/fakes" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12) 13 14var _ = Describe("ServerCertificate", func() { 15 var ( 16 serverCertificate iam.ServerCertificate 17 client *fakes.ServerCertificatesClient 18 name *string 19 ) 20 21 BeforeEach(func() { 22 client = &fakes.ServerCertificatesClient{} 23 name = aws.String("the-name") 24 25 serverCertificate = iam.NewServerCertificate(client, name) 26 }) 27 28 Describe("Delete", func() { 29 It("deletes the server certificate", func() { 30 err := serverCertificate.Delete() 31 Expect(err).NotTo(HaveOccurred()) 32 33 Expect(client.DeleteServerCertificateCall.CallCount).To(Equal(1)) 34 Expect(client.DeleteServerCertificateCall.Receives.Input.ServerCertificateName).To(Equal(name)) 35 }) 36 37 Context("when the client fails", func() { 38 BeforeEach(func() { 39 client.DeleteServerCertificateCall.Returns.Error = errors.New("banana") 40 }) 41 42 It("returns the error", func() { 43 err := serverCertificate.Delete() 44 Expect(err).To(MatchError("Delete: banana")) 45 }) 46 }) 47 }) 48 49 Describe("Name", func() { 50 It("returns the identifier", func() { 51 Expect(serverCertificate.Name()).To(Equal("the-name")) 52 }) 53 }) 54 55 Describe("Type", func() { 56 It("returns \"server certificate\"", func() { 57 Expect(serverCertificate.Type()).To(Equal("IAM Server Certificate")) 58 }) 59 }) 60}) 61