|  | @@ -0,0 +1,89 @@
 | 
	
		
			
				|  |  | +package convert
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import (
 | 
	
		
			
				|  |  | +	"testing"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	"github.com/Azure/azure-sdk-for-go/profiles/latest/containerinstance/mgmt/containerinstance"
 | 
	
		
			
				|  |  | +	"github.com/Azure/go-autorest/autorest/to"
 | 
	
		
			
				|  |  | +	"github.com/stretchr/testify/assert"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	"github.com/docker/api/containers"
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func TestPortConvert(t *testing.T) {
 | 
	
		
			
				|  |  | +	expectedPorts := []containers.Port{
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			HostPort:      80,
 | 
	
		
			
				|  |  | +			ContainerPort: 80,
 | 
	
		
			
				|  |  | +			HostIP:        "10.0.0.1",
 | 
	
		
			
				|  |  | +			Protocol:      "tcp",
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	testCases := []struct {
 | 
	
		
			
				|  |  | +		name     string
 | 
	
		
			
				|  |  | +		ip       *containerinstance.IPAddress
 | 
	
		
			
				|  |  | +		ports    []containerinstance.ContainerPort
 | 
	
		
			
				|  |  | +		expected []containers.Port
 | 
	
		
			
				|  |  | +	}{
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			name: "convert port",
 | 
	
		
			
				|  |  | +			ip: &containerinstance.IPAddress{
 | 
	
		
			
				|  |  | +				IP: to.StringPtr("10.0.0.1"),
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			ports: []containerinstance.ContainerPort{
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					Protocol: "tcp",
 | 
	
		
			
				|  |  | +					Port:     to.Int32Ptr(80),
 | 
	
		
			
				|  |  | +				},
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			expected: expectedPorts,
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			name: "with nil ip",
 | 
	
		
			
				|  |  | +			ip:   nil,
 | 
	
		
			
				|  |  | +			ports: []containerinstance.ContainerPort{
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					Protocol: "tcp",
 | 
	
		
			
				|  |  | +					Port:     to.Int32Ptr(80),
 | 
	
		
			
				|  |  | +				},
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			expected: []containers.Port{
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					HostPort:      80,
 | 
	
		
			
				|  |  | +					ContainerPort: 80,
 | 
	
		
			
				|  |  | +					HostIP:        "",
 | 
	
		
			
				|  |  | +					Protocol:      "tcp",
 | 
	
		
			
				|  |  | +				},
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			name: "skip nil ports",
 | 
	
		
			
				|  |  | +			ip:   nil,
 | 
	
		
			
				|  |  | +			ports: []containerinstance.ContainerPort{
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					Protocol: "tcp",
 | 
	
		
			
				|  |  | +					Port:     to.Int32Ptr(80),
 | 
	
		
			
				|  |  | +				},
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					Protocol: "tcp",
 | 
	
		
			
				|  |  | +					Port:     nil,
 | 
	
		
			
				|  |  | +				},
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			expected: []containers.Port{
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					HostPort:      80,
 | 
	
		
			
				|  |  | +					ContainerPort: 80,
 | 
	
		
			
				|  |  | +					HostIP:        "",
 | 
	
		
			
				|  |  | +					Protocol:      "tcp",
 | 
	
		
			
				|  |  | +				},
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	for _, testCase := range testCases {
 | 
	
		
			
				|  |  | +		t.Run(testCase.name, func(t *testing.T) {
 | 
	
		
			
				|  |  | +			ports := ToPorts(testCase.ip, testCase.ports)
 | 
	
		
			
				|  |  | +			assert.Equal(t, testCase.expected, ports)
 | 
	
		
			
				|  |  | +		})
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 |