Exemple #1
0
            public async Task PortBindingsHttpAndHttps()
            {
                // Given
                var http = new { From = 80, To = 80 };

                var https = new { From = 443, To = 80 };

                var testcontainersBuilder = new TestcontainersBuilder <TestcontainersContainer>()
                                            .WithImage("nginx");

                // When
                // Then
                foreach (var port in new[] { http, https })
                {
                    await using (IDockerContainer testcontainer = testcontainersBuilder
                                                                  .WithPortBinding(port.From, port.To)
                                                                  .WithWaitStrategy(Wait.ForUnixContainer()
                                                                                    .UntilPortIsAvailable(port.To))
                                                                  .Build())
                    {
                        await testcontainer.StartAsync();

                        var request = WebRequest.Create($"http://localhost:{port.From}");

                        var response = (HttpWebResponse)await request.GetResponseAsync();

                        Assert.True(HttpStatusCode.OK.Equals(response.StatusCode), $"nginx port {port.From} is not available.");
                    }
                }
            }