1
0

backend_test.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package azure
  2. import (
  3. "testing"
  4. "github.com/Azure/azure-sdk-for-go/profiles/latest/containerinstance/mgmt/containerinstance"
  5. "github.com/Azure/go-autorest/autorest/to"
  6. "github.com/stretchr/testify/suite"
  7. . "github.com/onsi/gomega"
  8. "github.com/docker/api/azure/convert"
  9. "github.com/docker/api/containers"
  10. )
  11. type BackendSuiteTest struct {
  12. suite.Suite
  13. }
  14. func (suite *BackendSuiteTest) TestGetContainerName() {
  15. group, container := getGroupAndContainerName("docker1234")
  16. Expect(group).To(Equal("docker1234"))
  17. Expect(container).To(Equal(singleContainerName))
  18. group, container = getGroupAndContainerName("compose_service1")
  19. Expect(group).To(Equal("compose"))
  20. Expect(container).To(Equal("service1"))
  21. group, container = getGroupAndContainerName("compose_stack_service1")
  22. Expect(group).To(Equal("compose_stack"))
  23. Expect(container).To(Equal("service1"))
  24. }
  25. func TestBackendSuite(t *testing.T) {
  26. RegisterTestingT(t)
  27. suite.Run(t, new(BackendSuiteTest))
  28. }
  29. func TestContainerGroupToContainer(t *testing.T) {
  30. myContainerGroup := containerinstance.ContainerGroup{
  31. ContainerGroupProperties: &containerinstance.ContainerGroupProperties{
  32. IPAddress: &containerinstance.IPAddress{
  33. Ports: &[]containerinstance.Port{{
  34. Port: to.Int32Ptr(80),
  35. }},
  36. IP: to.StringPtr("42.42.42.42"),
  37. },
  38. },
  39. }
  40. myContainer := containerinstance.Container{
  41. Name: to.StringPtr("myContainerID"),
  42. ContainerProperties: &containerinstance.ContainerProperties{
  43. Image: to.StringPtr("sha256:666"),
  44. Command: to.StringSlicePtr([]string{"mycommand"}),
  45. Ports: &[]containerinstance.ContainerPort{{
  46. Port: to.Int32Ptr(80),
  47. }},
  48. EnvironmentVariables: nil,
  49. InstanceView: &containerinstance.ContainerPropertiesInstanceView{
  50. RestartCount: nil,
  51. CurrentState: &containerinstance.ContainerState{
  52. State: to.StringPtr("Running"),
  53. },
  54. },
  55. Resources: &containerinstance.ResourceRequirements{
  56. Limits: &containerinstance.ResourceLimits{
  57. MemoryInGB: to.Float64Ptr(9),
  58. },
  59. },
  60. },
  61. }
  62. var expectedContainer = containers.Container{
  63. ID: "myContainerID",
  64. Status: "Running",
  65. Image: "sha256:666",
  66. Command: "mycommand",
  67. MemoryLimit: 9,
  68. Ports: []containers.Port{{
  69. HostPort: uint32(80),
  70. ContainerPort: uint32(80),
  71. Protocol: "tcp",
  72. HostIP: "42.42.42.42",
  73. }},
  74. }
  75. container, err := convert.ContainerGroupToContainer("myContainerID", myContainerGroup, myContainer)
  76. Expect(err).To(BeNil())
  77. Expect(container).To(Equal(expectedContainer))
  78. }