public void ShouldAddTcpPortSuffix() { // Given var containerConfiguration = new Mock <ITestcontainersConfiguration>(); containerConfiguration.Setup(config => config.PortBindings) .Returns(new Dictionary <string, string> { { Port, Port } }); // When var portBinding = new TestcontainersConfigurationConverter(containerConfiguration.Object) .PortBindings .Single() .Key; // Then Assert.Equal($"{Port}/tcp", portBinding); }
public void ShouldAddTcpPortSuffix() { // Given var containerConfiguration = new Mock <ITestcontainersConfiguration>(); containerConfiguration.Setup(config => config.ExposedPorts) .Returns(new Dictionary <string, string> { { Port, null } }); // When var exposedPort = new TestcontainersConfigurationConverter(containerConfiguration.Object) .ExposedPorts .Single() .Key; // Then Assert.Equal($"{Port}/tcp", exposedPort); }
public void ShouldKeepPortSuffix(string portSuffix) { // Given var qualifiedPort = $"{Port}/{portSuffix}"; var containerConfiguration = new Mock <ITestcontainersConfiguration>(); containerConfiguration.Setup(config => config.PortBindings) .Returns(new Dictionary <string, string> { { qualifiedPort, Port } }); // When var portBinding = new TestcontainersConfigurationConverter(containerConfiguration.Object) .PortBindings .Single() .Key; // Then Assert.Equal($"{Port}/{portSuffix}".ToLowerInvariant(), portBinding); }
public async Task <string> RunAsync(TestcontainersConfiguration config, CancellationToken ct = default) { var image = config.Container.Image; var imageExistsTask = DockerApiClientImage.Instance.ExistsWithNameAsync(image); var pullImageTask = Task.CompletedTask; if (!await imageExistsTask) { pullImageTask = Docker.Images.CreateImageAsync(new ImagesCreateParameters { FromImage = image }, null, DebugProgress.Instance, ct); } var name = config.Container.Name; var workingDir = config.Container.WorkingDirectory; var converter = new TestcontainersConfigurationConverter(config); var entrypoint = converter.Entrypoint; var cmd = converter.Command; var env = converter.Environments; var labels = converter.Labels; var exposedPorts = converter.ExposedPorts; var portBindings = converter.PortBindings; var mounts = converter.Mounts; var hostConfig = new HostConfig { PortBindings = portBindings, Mounts = mounts, }; var createParameters = new CreateContainerParameters { Image = image, Name = name, WorkingDir = workingDir, Entrypoint = entrypoint, Env = env, Labels = labels, Cmd = cmd, ExposedPorts = exposedPorts, HostConfig = hostConfig, }; await pullImageTask; var id = (await Docker.Containers.CreateContainerAsync(createParameters, ct)).ID; TestcontainersRegistryService.Register(id, config.CleanUp); return(id); }