Exemple #1
0
        public void TestCreate()
        {
            // Arrange
            var containerApi = MockContainerApi().Object;

            var dockerRunspaceProvider = new DockerRunspaceProvider(
                new RunspaceContainerCreateSpec()
            {
                ImageName   = TEST_IMAGE_NAME,
                NetworkName = TEST_NETWORK_NAME
            },
                TEST_DOCKER_ADDRESS,
                containerApi,
                false);

            // Act
            var actual = dockerRunspaceProvider.StartCreate();

            actual = dockerRunspaceProvider.WaitCreateCompletion(actual);

            // Assert
            Assert.AreEqual(TEST_RUNSPACE_ID, actual.Id);
            Assert.AreEqual(TEST_IP_ADDRESS, actual.Endpoint.Address.ToString());
            Assert.AreEqual(TEST_NETWORK_PORT, actual.Endpoint.Port);
        }
Exemple #2
0
        public void TestDockerExceptionHandledOnCreate()
        {
            // Arrange
            var containerApiMock = new Mock <IContainerApi>();

            // Mock ContainerCreate API
            containerApiMock.Setup(m => m.ContainerCreate(It.IsAny <ContainerConfig>(), null))
            .Throws(new ApiException());

            var containerApi = containerApiMock.Object;

            var dockerRunspaceProvider = new DockerRunspaceProvider(
                new RunspaceContainerCreateSpec()
            {
                ImageName   = TEST_IMAGE_NAME,
                NetworkName = TEST_NETWORK_NAME
            },
                TEST_DOCKER_ADDRESS,
                containerApi,
                false);

            // Act
            var actual = dockerRunspaceProvider.StartCreate();

            actual = dockerRunspaceProvider.WaitCreateCompletion(actual);

            // Assert
            Assert.AreEqual(RunspaceCreationState.Error, actual.CreationState);
            Assert.NotNull(actual.CreationError);
            Assert.AreEqual("Docker Engine ContainerCreate API failed", actual.CreationError.Message);
        }
Exemple #3
0
        public void TestDockerExceptionHandledOnKill()
        {
            // Arrange
            var containerApiMock = new Mock <IContainerApi>();

            // Mock ContainerInspect API
            containerApiMock.Setup(m => m.ContainerKill(TEST_RUNSPACE_ID, null))
            .Throws(new ApiException());

            var containerApi = containerApiMock.Object;

            var dockerRunspaceProvider = new DockerRunspaceProvider(
                new RunspaceContainerCreateSpec()
            {
                ImageName   = TEST_IMAGE_NAME,
                NetworkName = TEST_NETWORK_NAME
            },
                TEST_DOCKER_ADDRESS,
                containerApi,
                false);

            // Act && Assert
            Assert.Throws <RunspaceProviderException>(
                () => dockerRunspaceProvider.Kill(TEST_RUNSPACE_ID),
                "Docker Engine ContainerKill API failed");
        }
Exemple #4
0
 public void Setup()
 {
     _containerApi     = new ContainerApi(DOCKER_ENGINE_ENDPOINT_BASE_PATH);
     _runspaceProvider = new DockerRunspaceProvider(
         new RunspaceContainerCreateSpec {
         ImageName   = IMAGE_NAME,
         NetworkName = NETWORK_NAME
     },
         DOCKER_ENGINE_ENDPOINT_BASE_PATH,
         _containerApi,
         false);
 }
Exemple #5
0
        public void TestKill()
        {
            // Arrange
            var containerApiMock = new Mock <IContainerApi>();

            containerApiMock.Setup(m => m.ContainerKill(TEST_RUNSPACE_ID, null));

            var dockerRunspaceProvider = new DockerRunspaceProvider(
                new RunspaceContainerCreateSpec()
            {
                ImageName   = TEST_IMAGE_NAME,
                NetworkName = TEST_NETWORK_NAME
            },
                TEST_DOCKER_ADDRESS,
                containerApiMock.Object,
                false);

            // Act & Assert
            Assert.DoesNotThrow(() => dockerRunspaceProvider.Kill(TEST_RUNSPACE_ID));
        }