18
18
19
19
import org .junit .jupiter .api .Test ;
20
20
21
+ import org .springframework .util .StringValueResolver ;
22
+
21
23
import static org .assertj .core .api .Assertions .assertThat ;
24
+ import static org .assertj .core .api .Assertions .assertThatIllegalArgumentException ;
25
+ import static org .assertj .core .api .Assertions .assertThatIllegalStateException ;
26
+ import static org .mockito .BDDMockito .given ;
27
+ import static org .mockito .BDDMockito .mock ;
22
28
23
29
/**
24
30
* Unit tests for {@link SimpleAliasRegistry}.
@@ -43,6 +49,7 @@ void aliasChaining() {
43
49
assertThat (registry .canonicalName ("testAlias" )).isEqualTo ("test" );
44
50
assertThat (registry .canonicalName ("testAlias2" )).isEqualTo ("test" );
45
51
assertThat (registry .canonicalName ("testAlias3" )).isEqualTo ("test" );
52
+
46
53
}
47
54
48
55
@ Test // SPR-17191
@@ -95,4 +102,52 @@ void getAliases() {
95
102
assertThat (registry .getAliases ("testAlias3" )).isEmpty ();
96
103
}
97
104
105
+ @ Test
106
+ void testCheckForAliasCircle () {
107
+ String name = "testName" ;
108
+ String alias = "testAlias" ;
109
+ registry .checkForAliasCircle (name , alias );
110
+ registry .registerAlias (name , alias );
111
+ assertThatIllegalStateException ()
112
+ .isThrownBy (() -> registry .checkForAliasCircle (alias , name ));
113
+ }
114
+
115
+ @ Test
116
+ void testResolveAliases () {
117
+ assertThatIllegalArgumentException ()
118
+ .isThrownBy (() -> registry .resolveAliases (null ));
119
+
120
+ StringValueResolver mock = mock ();
121
+
122
+ registry .registerAlias ("testName1" , "testAlias1" );
123
+ registry .registerAlias ("testName2" , "testAlias2" );
124
+ given (mock .resolveStringValue ("testAlias2" )).willReturn ("anotherAlias2" );
125
+ given (mock .resolveStringValue ("testName2" )).willReturn ("anotherName2" );
126
+ registry .resolveAliases (mock );
127
+ assertThat (registry .getAliases ("anotherName2" )).containsExactly ("anotherAlias2" );
128
+
129
+ registry .registerAlias ("testName3" , "testAlias3" );
130
+ registry .registerAlias ("testName4" , "testAlias4" );
131
+ registry .registerAlias ("testName5" , "testAlias5" );
132
+ given (mock .resolveStringValue ("testName5" )).willReturn ("testName5" );
133
+ given (mock .resolveStringValue ("testAlias5" )).willReturn ("testAlias5" );
134
+ given (mock .resolveStringValue ("testName3" )).willReturn ("testName4" );
135
+ given (mock .resolveStringValue ("testAlias3" )).willReturn ("testAlias4" );
136
+ given (mock .resolveStringValue ("testName4" )).willReturn ("testName4" );
137
+ given (mock .resolveStringValue ("testAlias4" )).willReturn ("testAlias5" );
138
+ assertThatIllegalStateException ()
139
+ .isThrownBy (() -> registry .resolveAliases (mock ));
140
+
141
+ given (mock .resolveStringValue ("testName4" )).willReturn ("testName5" );
142
+ given (mock .resolveStringValue ("testAlias4" )).willReturn ("testAlias4" );
143
+ assertThatIllegalStateException ()
144
+ .isThrownBy (() -> registry .resolveAliases (mock ));
145
+
146
+ given (mock .resolveStringValue ("testName4" )).willReturn ("testName4" );
147
+ given (mock .resolveStringValue ("testAlias4" )).willReturn ("testAlias5" );
148
+ registry .resolveAliases (mock );
149
+ assertThat (registry .getAliases ("testName4" )).containsExactly ("testAlias4" );
150
+ assertThat (registry .getAliases ("testName5" )).containsExactly ("testAlias5" );
151
+ }
152
+
98
153
}
0 commit comments