Esempio n. 1
0
        public async Task CommandsIsSuccessful_ReturnsDockerImages()
        {
            // Arrange
            var imageOutput = new[]
            {
                new DockerImageResult {
                    Id = ExpectedImageId1, Repository = ExpectedRepository1, Tag = ExpectedTag1
                },
                new DockerImageResult {
                    Id = ExpectedImageId2, Repository = ExpectedRepository2, Tag = ExpectedTag2
                }
            };
            var mockCommandFactory = BuildMockCommandFactoryForScenario(true, imageOutput);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var result = await sut.GetImagesAsync();

            // Assert
            var expectedResult = new []
            {
                new { Id = ExpectedImageId1, Repository = ExpectedRepository1, Tag = ExpectedTag1, Deleted = false },
                new { Id = ExpectedImageId2, Repository = ExpectedRepository2, Tag = ExpectedTag2, Deleted = false }
            }.ToExpectedObject();

            expectedResult.ShouldMatch(result);
        }
Esempio n. 2
0
        public void WorkingDirectoryIsSet()
        {
            // Arrange
            var mockCommandFactory = Substitute.For <IRunCommands>();
            var validDirectory     = Directory.GetCurrentDirectory();
            // Act
            var sut = new Dockhand.Client.DockerClient(validDirectory, mockCommandFactory);

            // Assert
            sut.WorkingDirectory.Should().Be(validDirectory);
        }
Esempio n. 3
0
        public void CommandIsNotSuccessfulExceptionThrown()
        {
            // Arrange
            var mockCommandFactory = BuildMockListContainerCommandWithScenario(false, new [] { "command error" });
            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var exception = Assert.CatchAsync(async() => await sut.ContainerExistsAsync("testId"));

            // Assert
            exception.Should().BeOfType <DockerCommandException>();
        }
        public void BuildCommandIsNotSuccessfulExceptionThrown()
        {
            // Arrange
            var mockCommandFactory = BuildMockCommandFactoryForScenario(false, new string[0], true, new DockerImageResult[0]);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var exception = Assert.CatchAsync(async() => await sut.BuildImageAsync(ExpectedDockerFile, ExpectedTarget, ExpectedRepository, ExpectedTag));

            // Assert
            exception.Should().BeOfType <DockerCommandException>();
        }
Esempio n. 5
0
        public void CommandIsNotSuccessfulExceptionThrown()
        {
            // Arrange
            var mockCommandFactory = BuildMockCommandFactoryForScenario(false, new DockerImageResult[0]);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var exception = Assert.CatchAsync(async() => await sut.GetImagesAsync());

            // Assert
            exception.Should().BeOfType <DockerCommandException>();
        }
        public async Task CommandIsSuccessfulImageNotExist(string imageId, string results)
        {
            // Arrange
            var containerIds       = results.Split(',');
            var mockCommandFactory = BuildMockCommandFactoryForScenario(true, containerIds);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var result = await sut.ImageExistsAsync("testId");

            // Assert
            result.Should().BeFalse();
        }
Esempio n. 7
0
        public async Task CommandIsSuccessfulContainerExists(string containerId, string results)
        {
            // Arrange
            var containerIds       = results.Split(',');
            var mockCommandFactory = BuildMockListContainerCommandWithScenario(true, containerIds);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var result = await sut.ContainerExistsAsync("testId");

            // Assert
            result.Should().BeTrue();
        }
Esempio n. 8
0
        public async Task CommandsIsSuccessful_NoDockerImages()
        {
            // Arrange
            var imageOutput        = new DockerImageResult[0];
            var mockCommandFactory = BuildMockCommandFactoryForScenario(true, imageOutput);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var result = await sut.GetImagesAsync();

            // Assert
            result.Count().Should().Be(0);
        }
        public async Task BothCommandsAreSuccessfulImageCreated_DockerImageHasCorrectTag()
        {
            // Arrange
            var imageOutput = new[] { new DockerImageResult {
                                          Id = ExpectedImageId, Repository = ExpectedRepository, Tag = ExpectedTag
                                      } };
            var buildOutput        = new[] { "buildOutput" };
            var mockCommandFactory = BuildMockCommandFactoryForScenario(true, buildOutput, true, imageOutput);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var result = await sut.BuildImageAsync(ExpectedDockerFile, ExpectedTarget, ExpectedRepository, ExpectedTag);

            // Assert
            result.Tag.Should().Be(ExpectedTag);
        }
Esempio n. 10
0
        public void CommandsIsSuccessful_ImageNotFound_ExceptionType()
        {
            // Arrange

            var imageOutput = new[]
            {
                new DockerImageResult {
                    Id = ExpectedImageId1, Repository = ExpectedRepository1, Tag = ExpectedTag1
                },
                new DockerImageResult {
                    Id = ExpectedImageId2, Repository = ExpectedRepository2, Tag = ExpectedTag2
                }
            };
            var mockCommandFactory = BuildMockCommandFactoryForScenario(true, imageOutput);

            var sut = new Dockhand.Client.DockerClient(_workingDirectory, mockCommandFactory);

            // Act
            var exception = Assert.CatchAsync(async() => await sut.GetImageAsync("wontfindthisrepo", ExpectedTag1));

            // Assert
            exception.Should().BeOfType <DockerImageNotFoundException>();
        }