You've already forked dcmerge
							
							fix(dockerCompose): add ServiceDeployResources.MergeFirstWin()
This commit is contained in:
		@@ -1543,6 +1543,155 @@ func TestServiceDeployResources_MergeLastWin(t *testing.T) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestServiceDeployResources_MergeFirstWin(t *testing.T) {
 | 
			
		||||
	require := require.New(t)
 | 
			
		||||
 | 
			
		||||
	testCases := []struct {
 | 
			
		||||
		serviceDeploymentResourcesA        *dockerCompose.ServiceDeployResources
 | 
			
		||||
		serviceDeploymentResourcesB        *dockerCompose.ServiceDeployResources
 | 
			
		||||
		expectedServiceDeploymentResources *dockerCompose.ServiceDeployResources
 | 
			
		||||
	}{
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA:        nil,
 | 
			
		||||
			serviceDeploymentResourcesB:        nil,
 | 
			
		||||
			expectedServiceDeploymentResources: nil,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: nil,
 | 
			
		||||
			},
 | 
			
		||||
			serviceDeploymentResourcesB: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			expectedServiceDeploymentResources: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			serviceDeploymentResourcesB: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: nil,
 | 
			
		||||
			},
 | 
			
		||||
			expectedServiceDeploymentResources: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			serviceDeploymentResourcesB: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "2",
 | 
			
		||||
					Memory: "1000",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			expectedServiceDeploymentResources: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Limits: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: nil,
 | 
			
		||||
			},
 | 
			
		||||
			serviceDeploymentResourcesB: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			expectedServiceDeploymentResources: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			serviceDeploymentResourcesB: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: nil,
 | 
			
		||||
			},
 | 
			
		||||
			expectedServiceDeploymentResources: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			serviceDeploymentResourcesB: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "2",
 | 
			
		||||
					Memory: "1000",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			expectedServiceDeploymentResources: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			serviceDeploymentResourcesA: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "",
 | 
			
		||||
					Memory: "",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			serviceDeploymentResourcesB: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			expectedServiceDeploymentResources: &dockerCompose.ServiceDeployResources{
 | 
			
		||||
				Reservations: &dockerCompose.ServiceDeployResourcesLimits{
 | 
			
		||||
					CPUs:   "1",
 | 
			
		||||
					Memory: "500",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i, testCase := range testCases {
 | 
			
		||||
		testCase.serviceDeploymentResourcesA.MergeFirstWin(testCase.serviceDeploymentResourcesB)
 | 
			
		||||
		require.True(testCase.expectedServiceDeploymentResources.Equal(testCase.serviceDeploymentResourcesA), "Failed test case %v", i)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestServiceDeployResourcesLimits_Equal(t *testing.T) {
 | 
			
		||||
	require := require.New(t)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user