github.com/buildpacks/pack@v0.33.3-0.20240516162812-884dd1837311/internal/build/fakes/fake_phase_factory.go (about) 1 package fakes 2 3 import "github.com/buildpacks/pack/internal/build" 4 5 type FakePhaseFactory struct { 6 NewCallCount int 7 ReturnForNew build.RunnerCleaner 8 NewCalledWithProvider []*build.PhaseConfigProvider 9 } 10 11 func NewFakePhaseFactory(ops ...func(*FakePhaseFactory)) *FakePhaseFactory { 12 fakePhaseFactory := &FakePhaseFactory{ 13 ReturnForNew: &FakePhase{}, 14 } 15 16 for _, op := range ops { 17 op(fakePhaseFactory) 18 } 19 20 return fakePhaseFactory 21 } 22 23 func WhichReturnsForNew(phase build.RunnerCleaner) func(*FakePhaseFactory) { 24 return func(factory *FakePhaseFactory) { 25 factory.ReturnForNew = phase 26 } 27 } 28 29 func (f *FakePhaseFactory) New(phaseConfigProvider *build.PhaseConfigProvider) build.RunnerCleaner { 30 f.NewCallCount++ 31 f.NewCalledWithProvider = append(f.NewCalledWithProvider, phaseConfigProvider) 32 33 return f.ReturnForNew 34 }