1616
1717package org .springframework .boot .testcontainers .service .connection ;
1818
19+ import java .util .Collections ;
20+ import java .util .List ;
1921import java .util .Map ;
2022
2123import org .junit .jupiter .api .BeforeEach ;
3436import org .springframework .core .annotation .MergedAnnotation ;
3537
3638import static org .assertj .core .api .Assertions .assertThat ;
39+ import static org .assertj .core .api .Assertions .assertThatIllegalArgumentException ;
3740import static org .assertj .core .api .Assertions .assertThatIllegalStateException ;
3841import static org .mockito .ArgumentMatchers .any ;
3942import static org .mockito .BDDMockito .then ;
@@ -83,13 +86,29 @@ void getConnectionDetailsWhenTypesMatchAndNameRestrictionMatchesReturnsDetails()
8386 assertThat (connectionDetails ).isNotNull ();
8487 }
8588
89+ @ Test
90+ void getConnectionDetailsWhenTypesMatchAndNameRestrictionsMatchReturnsDetails () {
91+ TestContainerConnectionDetailsFactory factory = new TestContainerConnectionDetailsFactory (
92+ List .of ("notmyname" , "myname" ));
93+ ConnectionDetails connectionDetails = getConnectionDetails (factory , this .source );
94+ assertThat (connectionDetails ).isNotNull ();
95+ }
96+
8697 @ Test
8798 void getConnectionDetailsWhenTypesMatchAndNameRestrictionDoesNotMatchReturnsNull () {
8899 TestContainerConnectionDetailsFactory factory = new TestContainerConnectionDetailsFactory ("notmyname" );
89100 ConnectionDetails connectionDetails = getConnectionDetails (factory , this .source );
90101 assertThat (connectionDetails ).isNull ();
91102 }
92103
104+ @ Test
105+ void getConnectionDetailsWhenTypesMatchAndNameRestrictionsDoNotMatchReturnsNull () {
106+ TestContainerConnectionDetailsFactory factory = new TestContainerConnectionDetailsFactory (
107+ List .of ("notmyname" , "alsonotmyname" ));
108+ ConnectionDetails connectionDetails = getConnectionDetails (factory , this .source );
109+ assertThat (connectionDetails ).isNull ();
110+ }
111+
93112 @ Test
94113 void getConnectionDetailsWhenContainerTypeDoesNotMatchReturnsNull () {
95114 ElasticsearchContainer container = mock (ElasticsearchContainer .class );
@@ -126,6 +145,18 @@ void getContainerWhenInitializedPublishesEventAndReturnsSuppliedContainer() thro
126145 then (context ).should ().publishEvent (any (BeforeTestcontainerUsedEvent .class ));
127146 }
128147
148+ @ Test
149+ void creatingFactoryWithEmptyNamesThrows () {
150+ assertThatIllegalArgumentException ()
151+ .isThrownBy (() -> new TestContainerConnectionDetailsFactory (Collections .emptyList ()));
152+ }
153+
154+ @ Test
155+ void creatingFactoryWithNullNamesThrows () {
156+ assertThatIllegalArgumentException ()
157+ .isThrownBy (() -> new TestContainerConnectionDetailsFactory ((List <String >) null ));
158+ }
159+
129160 @ SuppressWarnings ({ "rawtypes" , "unchecked" })
130161 private TestContainerConnectionDetails getConnectionDetails (ConnectionDetailsFactory <?, ?> factory ,
131162 ContainerConnectionSource <?> source ) {
@@ -146,6 +177,10 @@ static class TestContainerConnectionDetailsFactory
146177 super (connectionName );
147178 }
148179
180+ TestContainerConnectionDetailsFactory (List <String > connectionNames ) {
181+ super (connectionNames );
182+ }
183+
149184 @ Override
150185 protected JdbcConnectionDetails getContainerConnectionDetails (
151186 ContainerConnectionSource <JdbcDatabaseContainer <?>> source ) {
0 commit comments