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  }