Beispiel #1
0
        public async Task InitializeAsync()
        {
            if (Docker.Exists(DockerResource.Container, DefaultRyukContainerName))
            {
                var resourceReaper = await ResourceReaper.GetAndStartDefaultAsync()
                                     .ConfigureAwait(false);

                await resourceReaper.DisposeAsync()
                .ConfigureAwait(false);
            }
        }
Beispiel #2
0
        public async Task DockerImageShouldBeDisposedByResourceReaper()
        {
            // Given
            var dockerImageFullName = await new ImageFromDockerfileBuilder()
                                      .WithDockerfileDirectory("Assets")
                                      .WithResourceReaperSessionId(this.resourceReaper.SessionId)
                                      .Build()
                                      .ConfigureAwait(false);

            // When
            await this.resourceReaper.DisposeAsync()
            .ConfigureAwait(false);

            // Then
            Assert.False(Docker.Exists(DockerResource.Image, dockerImageFullName));
        }
Beispiel #3
0
        public async Task CleanUpTrueDoesStartDefaultResourceReaper()
        {
            // Given
            var testcontainersBuilder = new TestcontainersBuilder <TestcontainersContainer>()
                                        .WithImage("nginx")
                                        .WithCleanUp(true);

            // When
            await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())
            {
                await testcontainer.StartAsync()
                .ConfigureAwait(false);
            }

            // Then
            Assert.True(Docker.Exists(DockerResource.Container, DefaultRyukContainerName));
        }
Beispiel #4
0
        public async Task UsingResourceReaperSessionIdDoesNotStartDefaultResourceReaper()
        {
            // Given
            var testcontainersBuilder = new TestcontainersBuilder <TestcontainersContainer>()
                                        .WithImage("nginx")
                                        .WithAutoRemove(true)
                                        .WithResourceReaperSessionId(Guid.NewGuid());

            // When
            await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())
            {
                await testcontainer.StartAsync()
                .ConfigureAwait(false);
            }

            // Then
            Assert.False(Docker.Exists(DockerResource.Container, DefaultRyukContainerName));
        }
Beispiel #5
0
        public async Task DockerVolumeShouldBeDisposedByResourceReaper()
        {
            // Given
            var volumeName = $"testcontainers-volume-{Guid.NewGuid():D}";

            await new TestcontainersVolumeBuilder()
            .WithName(volumeName)
            .WithResourceReaperSessionId(this.resourceReaper.SessionId)
            .Build()
            .CreateAsync()
            .ConfigureAwait(false);

            // When
            await this.resourceReaper.DisposeAsync()
            .ConfigureAwait(false);

            // Then
            Assert.False(Docker.Exists(DockerResource.Volume, volumeName));
        }
Beispiel #6
0
        public async Task DockerContainerShouldBeDisposedByResourceReaper()
        {
            // Given
            var containerName = $"testcontainers-container-{Guid.NewGuid():D}";

            await new TestcontainersBuilder <TestcontainersContainer>()
            .WithImage("alpine")
            .WithName(containerName)
            .WithCommand(KeepTestcontainersUpAndRunning.Command)
            .WithResourceReaperSessionId(this.resourceReaper.SessionId)
            .Build()
            .StartAsync()
            .ConfigureAwait(false);

            // When
            await this.resourceReaper.DisposeAsync()
            .ConfigureAwait(false);

            // Then
            Assert.False(Docker.Exists(DockerResource.Container, containerName));
        }
Beispiel #7
0
            public async Task AutoRemoveTrueShouldRemoveContainer()
            {
                // Given
                string testcontainerId;

                var testcontainersBuilder = new TestcontainersBuilder <TestcontainersContainer>()
                                            .WithImage("alpine")
                                            .WithAutoRemove(true)
                                            .WithCleanUp(false)
                                            .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);

                // When
                await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())
                {
                    await testcontainer.StartAsync();

                    testcontainerId = testcontainer.Id;
                }

                // Then
                Assert.False(Docker.Exists(DockerResource.Container, testcontainerId));
            }