pkg/testutil/bldr/proto_spec_builder.go (29 lines of code) (raw):
package bldr
import "gitlab.com/gitlab-org/step-runner/proto"
type ProtoSpecBuilder struct {
outputMethod proto.OutputMethod
outputSpec map[string]*proto.Spec_Content_Output
}
func ProtoSpec() *ProtoSpecBuilder {
return &ProtoSpecBuilder{
outputMethod: proto.OutputMethod_outputs,
outputSpec: make(map[string]*proto.Spec_Content_Output),
}
}
func (bldr *ProtoSpecBuilder) WithOutputSpec(outputSpec map[string]*proto.Spec_Content_Output) *ProtoSpecBuilder {
bldr.outputSpec = outputSpec
return bldr
}
func (bldr *ProtoSpecBuilder) WithOutputMethod(outputMethod proto.OutputMethod) *ProtoSpecBuilder {
bldr.outputMethod = outputMethod
return bldr
}
func (bldr *ProtoSpecBuilder) Build() *proto.Spec {
return &proto.Spec{
Spec: &proto.Spec_Content{
Inputs: map[string]*proto.Spec_Content_Input{},
Outputs: bldr.outputSpec,
OutputMethod: bldr.outputMethod,
},
}
}