public async Task BuildsImageFromDockerfile() { var dockerFile = ProjectLocator.FindSlnFiles().First().Directory .GetDirectories("Examples").Single() .GetDirectories("ExampleProject").Single() .GetFiles("Dockerfile").Single(); var client = new DockerClientProvider().GetDockerClient(); var provider = new DockerfileImageProvider(dockerFile, ".."); string image = await provider.GetImage(client); Assert.NotNull(image); }
public async Task FindsDockerFileWhenSuppliedWithProjectName() { var dockerFile = ProjectLocator.FindSlnFiles().First().Directory .GetDirectories("Examples").Single() .GetDirectories("ExampleProject").Single() .GetFiles("Dockerfile").Single(); var locator = new Mock <IDockerfileLocator>(); locator.Setup(l => l.GetDockerfile(new KeyValuePair <string, string>("project", "foo"))) .Returns(dockerFile).Verifiable(); var client = new DockerClientProvider().GetDockerClient(); var provider = new DockerfileImageProvider("foo", "..", null, locator.Object); var image = await provider.GetImage(client); Assert.NotNull(image); locator.Verify(); }
public async Task ThrowsWhenDockerBuildFails(string content) { var dir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Directory.CreateDirectory(dir); var file = new FileInfo(Path.Combine(dir, "Dockerfile")); File.WriteAllText(file.FullName, content); try { var client = new DockerClientProvider().GetDockerClient(); var provider = new DockerfileImageProvider(file, "."); await Assert.ThrowsAsync <DockerBuildFailedException>(async() => await provider.GetImage(client)); } finally { Directory.Delete(dir, true); } }