|  | @@ -0,0 +1,66 @@
 | 
												
													
														
															|  | 
 |  | +package core
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +import (
 | 
												
													
														
															|  | 
 |  | +	"testing"
 | 
												
													
														
															|  | 
 |  | +	"gopkg.in/src-d/go-git.v4"
 | 
												
													
														
															|  | 
 |  | +	"github.com/stretchr/testify/assert"
 | 
												
													
														
															|  | 
 |  | +)
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +type testForkPipelineItem struct {
 | 
												
													
														
															|  | 
 |  | +	NoopMerger
 | 
												
													
														
															|  | 
 |  | +	Mutable map[int]bool
 | 
												
													
														
															|  | 
 |  | +	Immutable string
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Name() string {
 | 
												
													
														
															|  | 
 |  | +	return "Test"
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Provides() []string {
 | 
												
													
														
															|  | 
 |  | +	arr := [...]string{"test"}
 | 
												
													
														
															|  | 
 |  | +	return arr[:]
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Requires() []string {
 | 
												
													
														
															|  | 
 |  | +	return []string{}
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Configure(facts map[string]interface{}) {
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) ListConfigurationOptions() []ConfigurationOption {
 | 
												
													
														
															|  | 
 |  | +	return nil
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Flag() string {
 | 
												
													
														
															|  | 
 |  | +	return "mytest"
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Features() []string {
 | 
												
													
														
															|  | 
 |  | +	return nil
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Initialize(repository *git.Repository) {
 | 
												
													
														
															|  | 
 |  | +	item.Mutable = map[int]bool{}
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Consume(deps map[string]interface{}) (map[string]interface{}, error) {
 | 
												
													
														
															|  | 
 |  | +	return map[string]interface{}{"test": "foo"}, nil
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func (item *testForkPipelineItem) Fork(n int) []PipelineItem {
 | 
												
													
														
															|  | 
 |  | +	return ForkCopyPipelineItem(item, n)
 | 
												
													
														
															|  | 
 |  | +}
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +func TestForkCopyPipelineItem(t *testing.T) {
 | 
												
													
														
															|  | 
 |  | +	origin := &testForkPipelineItem{}
 | 
												
													
														
															|  | 
 |  | +	origin.Initialize(nil)
 | 
												
													
														
															|  | 
 |  | +	origin.Mutable[2] = true
 | 
												
													
														
															|  | 
 |  | +	origin.Immutable = "before"
 | 
												
													
														
															|  | 
 |  | +	clone := origin.Fork(1)[0].(*testForkPipelineItem)
 | 
												
													
														
															|  | 
 |  | +	origin.Immutable = "after"
 | 
												
													
														
															|  | 
 |  | +	origin.Mutable[1] = true
 | 
												
													
														
															|  | 
 |  | +	assert.True(t, clone.Mutable[1])
 | 
												
													
														
															|  | 
 |  | +	assert.True(t, clone.Mutable[2])
 | 
												
													
														
															|  | 
 |  | +	assert.Equal(t, "before", clone.Immutable)
 | 
												
													
														
															|  | 
 |  | +}
 |