From 3a887503b5d4dccc936fe6d87a8ba248a9a504fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Luthi?= Date: Thu, 31 Aug 2023 17:44:37 +0200 Subject: [PATCH] Remove IDatabaseContainer from LocalStackContainer and WebDriverContainer They aren't really databases. --- src/Testcontainers.LocalStack/LocalStackContainer.cs | 2 +- src/Testcontainers.WebDriver/WebDriverContainer.cs | 2 +- .../DatabasesContainerTest.cs | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Testcontainers.LocalStack/LocalStackContainer.cs b/src/Testcontainers.LocalStack/LocalStackContainer.cs index d1fb53b39..107a613e3 100644 --- a/src/Testcontainers.LocalStack/LocalStackContainer.cs +++ b/src/Testcontainers.LocalStack/LocalStackContainer.cs @@ -2,7 +2,7 @@ namespace Testcontainers.LocalStack; /// [PublicAPI] -public sealed class LocalStackContainer : DockerContainer, IDatabaseContainer +public sealed class LocalStackContainer : DockerContainer { /// /// Initializes a new instance of the class. diff --git a/src/Testcontainers.WebDriver/WebDriverContainer.cs b/src/Testcontainers.WebDriver/WebDriverContainer.cs index 864b337f3..3c90cbc4e 100644 --- a/src/Testcontainers.WebDriver/WebDriverContainer.cs +++ b/src/Testcontainers.WebDriver/WebDriverContainer.cs @@ -2,7 +2,7 @@ namespace Testcontainers.WebDriver; /// [PublicAPI] -public sealed class WebDriverContainer : DockerContainer, IDatabaseContainer +public sealed class WebDriverContainer : DockerContainer { private readonly WebDriverConfiguration _configuration; diff --git a/tests/Testcontainers.Databases.Tests/DatabasesContainerTest.cs b/tests/Testcontainers.Databases.Tests/DatabasesContainerTest.cs index b341babd1..4e7414fb2 100644 --- a/tests/Testcontainers.Databases.Tests/DatabasesContainerTest.cs +++ b/tests/Testcontainers.Databases.Tests/DatabasesContainerTest.cs @@ -9,6 +9,14 @@ public void ImplementsIDatabaseContainerInterface(Type type) Assert.True(type.IsAssignableTo(typeof(IDatabaseContainer))); } + private static readonly HashSet NotDatabaseContainerTypes = new() + { + typeof(LocalStack.LocalStackContainer), + typeof(WebDriver.WebDriverContainer), + }; + + private static bool IsDatabaseContainerType(Type containerType) => !NotDatabaseContainerTypes.Contains(containerType); + public static IEnumerable DatabaseContainersTheoryData { get @@ -19,6 +27,7 @@ public static IEnumerable DatabaseContainersTheoryData return dependencyContext.RuntimeLibraries .Where(library => library.Name.StartsWith("Testcontainers.")) .SelectMany(library => Assembly.Load(library.Name).GetExportedTypes().Where(HasGetConnectionStringMethod)) + .Where(IsDatabaseContainerType) .Select(type => new[] { type }); } }