github.com/cloudfoundry-incubator/stembuild@v0.0.0-20211223202937-5b61d62226c6/package_stemcell/packagers/packager_test.go (about) 1 package packagers_test 2 3 import ( 4 "bytes" 5 "errors" 6 "github.com/cloudfoundry-incubator/stembuild/package_stemcell/packagers" 7 "github.com/cloudfoundry-incubator/stembuild/package_stemcell/packagers/packagersfakes" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Packager", func() { 13 Describe("Package", func() { 14 15 var ( 16 source *packagersfakes.FakeSource 17 stemcellGenerator *packagersfakes.FakeStemcellGenerator 18 packager *packagers.Packager 19 ) 20 21 BeforeEach(func() { 22 source = &packagersfakes.FakeSource{} 23 stemcellGenerator = &packagersfakes.FakeStemcellGenerator{} 24 packager = packagers.NewPackager(source, stemcellGenerator) 25 }) 26 27 It("returns an error if ArtifactReader does", func() { 28 29 source.ArtifactReaderReturns(nil, errors.New("bad thing")) 30 err := packager.Package() 31 32 Expect(err).To(HaveOccurred()) 33 Expect(err).To(MatchError("packager failed to retrieve artifact: bad thing")) 34 }) 35 36 It("returns an error if Generate does", func() { 37 38 stemcellGenerator.GenerateReturns(errors.New("other bad thing")) 39 40 err := packager.Package() 41 42 Expect(err).To(MatchError("packager failed to generate stemcell: other bad thing")) 43 }) 44 45 It("uses source object to generate stemcell", func() { 46 fakeIoReader := bytes.NewReader([]byte{}) 47 source.ArtifactReaderReturns(fakeIoReader, nil) 48 49 err := packager.Package() 50 51 Expect(err).NotTo(HaveOccurred()) 52 53 Expect(source.ArtifactReaderCallCount()).To(Equal(1)) 54 Expect(stemcellGenerator.GenerateCallCount()).To(Equal(1)) 55 56 argsForFirstCall := stemcellGenerator.GenerateArgsForCall(0) 57 Expect(argsForFirstCall).To(BeIdenticalTo(fakeIoReader)) 58 }) 59 }) 60 })