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); }
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); }
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>(); }
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(); }
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(); }
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); }
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>(); }