github.com/YousefHaggyHeroku/pack@v1.5.5/internal/build/fakes/fake_builder.go (about)

     1  package fakes
     2  
     3  import (
     4  	"github.com/Masterminds/semver"
     5  	"github.com/buildpacks/imgutil"
     6  	ifakes "github.com/buildpacks/imgutil/fakes"
     7  	"github.com/buildpacks/lifecycle/api"
     8  
     9  	"github.com/YousefHaggyHeroku/pack/internal/build"
    10  	"github.com/YousefHaggyHeroku/pack/internal/builder"
    11  )
    12  
    13  type FakeBuilder struct {
    14  	ReturnForImage               imgutil.Image
    15  	ReturnForUID                 int
    16  	ReturnForGID                 int
    17  	ReturnForLifecycleDescriptor builder.LifecycleDescriptor
    18  	ReturnForStack               builder.StackMetadata
    19  }
    20  
    21  func NewFakeBuilder(ops ...func(*FakeBuilder)) (*FakeBuilder, error) {
    22  	fakeBuilder := &FakeBuilder{
    23  		ReturnForImage: ifakes.NewImage("some-builder-name", "", nil),
    24  		ReturnForUID:   99,
    25  		ReturnForGID:   99,
    26  		ReturnForLifecycleDescriptor: builder.LifecycleDescriptor{
    27  			Info: builder.LifecycleInfo{
    28  				Version: &builder.Version{Version: *semver.MustParse("12.34")},
    29  			},
    30  			APIs: builder.LifecycleAPIs{
    31  				Buildpack: builder.APIVersions{
    32  					Supported: builder.APISet{api.MustParse("0.4")},
    33  				},
    34  				Platform: builder.APIVersions{
    35  					Supported: builder.APISet{api.MustParse("0.4")},
    36  				},
    37  			},
    38  		},
    39  		ReturnForStack: builder.StackMetadata{},
    40  	}
    41  
    42  	for _, op := range ops {
    43  		op(fakeBuilder)
    44  	}
    45  
    46  	return fakeBuilder, nil
    47  }
    48  
    49  func WithDeprecatedPlatformAPIs(apis []*api.Version) func(*FakeBuilder) {
    50  	return func(builder *FakeBuilder) {
    51  		builder.ReturnForLifecycleDescriptor.APIs.Platform.Deprecated = apis
    52  	}
    53  }
    54  
    55  func WithSupportedPlatformAPIs(apis []*api.Version) func(*FakeBuilder) {
    56  	return func(builder *FakeBuilder) {
    57  		builder.ReturnForLifecycleDescriptor.APIs.Platform.Supported = apis
    58  	}
    59  }
    60  
    61  func WithImage(image imgutil.Image) func(*FakeBuilder) {
    62  	return func(builder *FakeBuilder) {
    63  		builder.ReturnForImage = image
    64  	}
    65  }
    66  
    67  func WithUID(uid int) func(*FakeBuilder) {
    68  	return func(builder *FakeBuilder) {
    69  		builder.ReturnForUID = uid
    70  	}
    71  }
    72  
    73  func WithGID(gid int) func(*FakeBuilder) {
    74  	return func(builder *FakeBuilder) {
    75  		builder.ReturnForGID = gid
    76  	}
    77  }
    78  
    79  func (b *FakeBuilder) Name() string {
    80  	return b.ReturnForImage.Name()
    81  }
    82  
    83  func (b *FakeBuilder) Image() imgutil.Image {
    84  	return b.ReturnForImage
    85  }
    86  
    87  func (b *FakeBuilder) UID() int {
    88  	return b.ReturnForUID
    89  }
    90  
    91  func (b *FakeBuilder) GID() int {
    92  	return b.ReturnForGID
    93  }
    94  
    95  func (b *FakeBuilder) LifecycleDescriptor() builder.LifecycleDescriptor {
    96  	return b.ReturnForLifecycleDescriptor
    97  }
    98  
    99  func (b *FakeBuilder) Stack() builder.StackMetadata {
   100  	return b.ReturnForStack
   101  }
   102  
   103  func WithBuilder(builder *FakeBuilder) func(*build.LifecycleOptions) {
   104  	return func(opts *build.LifecycleOptions) {
   105  		opts.Builder = builder
   106  	}
   107  }