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  })