16
16
17
17
package org .springframework .boot .testcontainers .service .connection ;
18
18
19
+ import java .util .Collections ;
20
+ import java .util .List ;
19
21
import java .util .Map ;
20
22
21
23
import org .junit .jupiter .api .BeforeEach ;
34
36
import org .springframework .core .annotation .MergedAnnotation ;
35
37
36
38
import static org .assertj .core .api .Assertions .assertThat ;
39
+ import static org .assertj .core .api .Assertions .assertThatIllegalArgumentException ;
37
40
import static org .assertj .core .api .Assertions .assertThatIllegalStateException ;
38
41
import static org .mockito .ArgumentMatchers .any ;
39
42
import static org .mockito .BDDMockito .then ;
@@ -83,13 +86,29 @@ void getConnectionDetailsWhenTypesMatchAndNameRestrictionMatchesReturnsDetails()
83
86
assertThat (connectionDetails ).isNotNull ();
84
87
}
85
88
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
+
86
97
@ Test
87
98
void getConnectionDetailsWhenTypesMatchAndNameRestrictionDoesNotMatchReturnsNull () {
88
99
TestContainerConnectionDetailsFactory factory = new TestContainerConnectionDetailsFactory ("notmyname" );
89
100
ConnectionDetails connectionDetails = getConnectionDetails (factory , this .source );
90
101
assertThat (connectionDetails ).isNull ();
91
102
}
92
103
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
+
93
112
@ Test
94
113
void getConnectionDetailsWhenContainerTypeDoesNotMatchReturnsNull () {
95
114
ElasticsearchContainer container = mock (ElasticsearchContainer .class );
@@ -126,6 +145,18 @@ void getContainerWhenInitializedPublishesEventAndReturnsSuppliedContainer() thro
126
145
then (context ).should ().publishEvent (any (BeforeTestcontainerUsedEvent .class ));
127
146
}
128
147
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
+
129
160
@ SuppressWarnings ({ "rawtypes" , "unchecked" })
130
161
private TestContainerConnectionDetails getConnectionDetails (ConnectionDetailsFactory <?, ?> factory ,
131
162
ContainerConnectionSource <?> source ) {
@@ -146,6 +177,10 @@ static class TestContainerConnectionDetailsFactory
146
177
super (connectionName );
147
178
}
148
179
180
+ TestContainerConnectionDetailsFactory (List <String > connectionNames ) {
181
+ super (connectionNames );
182
+ }
183
+
149
184
@ Override
150
185
protected JdbcConnectionDetails getContainerConnectionDetails (
151
186
ContainerConnectionSource <JdbcDatabaseContainer <?>> source ) {
0 commit comments