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 }