10
10
package org .zowe .apiml .gatewayservice ;
11
11
12
12
import io .restassured .RestAssured ;
13
+ import org .apache .commons .lang3 .StringUtils ;
13
14
import org .junit .jupiter .api .BeforeEach ;
14
- import org .junit .jupiter .api .Test ;
15
+ import org .junit .jupiter .params .ParameterizedTest ;
16
+ import org .junit .jupiter .params .provider .MethodSource ;
15
17
import org .zowe .apiml .util .config .ConfigReader ;
16
18
17
19
import static io .restassured .RestAssured .given ;
@@ -25,14 +27,22 @@ public class QueryIntegrationTest {
25
27
private final static String SCHEME = ConfigReader .environmentConfiguration ().getGatewayServiceConfiguration ().getScheme ();
26
28
private final static String HOST = ConfigReader .environmentConfiguration ().getGatewayServiceConfiguration ().getHost ();
27
29
private final static int PORT = ConfigReader .environmentConfiguration ().getGatewayServiceConfiguration ().getPort ();
28
- private final static String BASE_PATH = "/api/v1/gateway" ;
30
+ private final static String BASE_PATH = "/gateway/api/v1" ;
31
+ private final static String BASE_PATH_OLD_FORMAT = "/api/v1/gateway" ;
29
32
private final static String QUERY_ENDPOINT = "/auth/query" ;
30
33
private final static String PASSWORD = ConfigReader .environmentConfiguration ().getCredentials ().getPassword ();
31
34
private final static String USERNAME = ConfigReader .environmentConfiguration ().getCredentials ().getUser ();
32
35
private final static String COOKIE = "apimlAuthenticationToken" ;
33
36
34
37
private String token ;
35
38
39
+ private static String [] queryUrlsSource () {
40
+ return new String []{
41
+ String .format ("%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ),
42
+ String .format ("%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH_OLD_FORMAT , QUERY_ENDPOINT )
43
+ };
44
+ }
45
+
36
46
@ BeforeEach
37
47
public void setUp () {
38
48
RestAssured .port = PORT ;
@@ -43,134 +53,149 @@ public void setUp() {
43
53
}
44
54
45
55
//@formatter:off
46
- @ Test
47
- void doQueryWithValidTokenFromHeader () {
56
+ @ ParameterizedTest
57
+ @ MethodSource ("queryUrlsSource" )
58
+ void doQueryWithValidTokenFromHeader (String queryUrl ) {
48
59
given ()
49
- .header ("Authorization" , "Bearer " + token )
60
+ .header ("Authorization" , "Bearer " + token )
50
61
.when ()
51
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
62
+ .get (queryUrl )
52
63
.then ()
53
64
.statusCode (is (SC_OK ))
54
65
.body ("userId" , equalTo (USERNAME ));
55
66
}
56
67
57
- @ Test
58
- void doQueryWithValidTokenFromCookie () {
68
+ @ ParameterizedTest
69
+ @ MethodSource ("queryUrlsSource" )
70
+ void doQueryWithValidTokenFromCookie (String queryUrl ) {
59
71
given ()
60
72
.cookie (COOKIE , token )
61
73
.when ()
62
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
74
+ .get (queryUrl )
63
75
.then ()
64
76
.statusCode (is (SC_OK ))
65
77
.body ("userId" , equalTo (USERNAME ));
66
78
}
67
79
68
- @ Test
69
- void doQueryWithInvalidTokenFromHeader () {
80
+ @ ParameterizedTest
81
+ @ MethodSource ("queryUrlsSource" )
82
+ void doQueryWithInvalidTokenFromHeader (String queryUrl ) {
70
83
String invalidToken = "1234" ;
71
- String expectedMessage = "Token is not valid for URL '" + BASE_PATH + QUERY_ENDPOINT + "'" ;
84
+ String queryPath = queryUrl .substring (StringUtils .ordinalIndexOf (queryUrl ,"/" ,3 ));
85
+ String expectedMessage = "Token is not valid for URL '" + queryPath + "'" ;
72
86
73
87
given ()
74
88
.header ("Authorization" , "Bearer " + invalidToken )
75
89
.contentType (JSON )
76
90
.when ()
77
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
91
+ .get (queryUrl )
78
92
.then ()
79
93
.statusCode (is (SC_UNAUTHORIZED ))
80
94
.body (
81
- "messages.find { it.messageNumber == 'ZWEAG130E' }.messageContent" , equalTo (expectedMessage )
82
- );
95
+ "messages.find { it.messageNumber == 'ZWEAG130E' }.messageContent" , equalTo (expectedMessage )
96
+ );
83
97
}
84
98
85
- @ Test
86
- void doQueryWithInvalidTokenFromCookie () {
99
+ @ ParameterizedTest
100
+ @ MethodSource ("queryUrlsSource" )
101
+ void doQueryWithInvalidTokenFromCookie (String queryUrl ) {
87
102
String invalidToken = "1234" ;
88
- String expectedMessage = "Token is not valid for URL '" + BASE_PATH + QUERY_ENDPOINT + "'" ;
103
+ String queryPath = queryUrl .substring (StringUtils .ordinalIndexOf (queryUrl ,"/" ,3 ));
104
+ String expectedMessage = "Token is not valid for URL '" + queryPath + "'" ;
89
105
90
106
given ()
91
107
.cookie (COOKIE , invalidToken )
92
108
.when ()
93
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
109
+ .get (queryUrl )
94
110
.then ()
95
111
.statusCode (is (SC_UNAUTHORIZED ))
96
112
.body (
97
113
"messages.find { it.messageNumber == 'ZWEAG130E' }.messageContent" , equalTo (expectedMessage )
98
114
);
99
115
}
100
116
101
- @ Test
102
- void doQueryWithoutHeaderOrCookie () {
103
- String expectedMessage = "No authorization token provided for URL '" + BASE_PATH + QUERY_ENDPOINT + "'" ;
117
+ @ ParameterizedTest
118
+ @ MethodSource ("queryUrlsSource" )
119
+ void doQueryWithoutHeaderOrCookie (String queryUrl ) {
120
+ String queryPath = queryUrl .substring (StringUtils .ordinalIndexOf (queryUrl ,"/" ,3 ));
121
+ String expectedMessage = "No authorization token provided for URL '" + queryPath + "'" ;
104
122
105
123
given ()
106
124
.when ()
107
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
125
+ .get (queryUrl )
108
126
.then ()
109
127
.statusCode (is (SC_UNAUTHORIZED ))
110
128
.body (
111
129
"messages.find { it.messageNumber == 'ZWEAG131E' }.messageContent" , equalTo (expectedMessage )
112
130
);
113
131
}
114
132
115
- @ Test
116
- void doQueryWithWrongAuthType () {
117
- String expectedMessage = "No authorization token provided for URL '" + BASE_PATH + QUERY_ENDPOINT + "'" ;
133
+ @ ParameterizedTest
134
+ @ MethodSource ("queryUrlsSource" )
135
+ void doQueryWithWrongAuthType (String queryUrl ) {
136
+ String queryPath = queryUrl .substring (StringUtils .ordinalIndexOf (queryUrl ,"/" ,3 ));
137
+ String expectedMessage = "No authorization token provided for URL '" + queryPath + "'" ;
118
138
119
139
given ()
120
140
.header ("Authorization" , "Basic " + token )
121
141
.when ()
122
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
142
+ .get (queryUrl )
123
143
.then ()
124
144
.statusCode (is (SC_UNAUTHORIZED ))
125
145
.body (
126
146
"messages.find { it.messageNumber == 'ZWEAG131E' }.messageContent" , equalTo (expectedMessage )
127
147
);
128
148
}
129
149
130
- @ Test
131
- void doQueryWithWrongCookieName () {
150
+ @ ParameterizedTest
151
+ @ MethodSource ("queryUrlsSource" )
152
+ void doQueryWithWrongCookieName (String queryUrl ) {
132
153
String invalidCookie = "badCookie" ;
133
- String expectedMessage = "No authorization token provided for URL '" + BASE_PATH + QUERY_ENDPOINT + "'" ;
154
+ String queryPath = queryUrl .substring (StringUtils .ordinalIndexOf (queryUrl ,"/" ,3 ));
155
+ String expectedMessage = "No authorization token provided for URL '" + queryPath + "'" ;
134
156
135
157
given ()
136
158
.cookie (invalidCookie , token )
137
159
.when ()
138
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
160
+ .get (queryUrl )
139
161
.then ()
140
162
.statusCode (is (SC_UNAUTHORIZED ))
141
163
.body (
142
164
"messages.find { it.messageNumber == 'ZWEAG131E' }.messageContent" , equalTo (expectedMessage )
143
165
);
144
166
}
145
167
146
- @ Test
147
- void doQueryWithEmptyHeader () {
168
+ @ ParameterizedTest
169
+ @ MethodSource ("queryUrlsSource" )
170
+ void doQueryWithEmptyHeader (String queryUrl ) {
148
171
String emptyToken = " " ;
149
- String expectedMessage = "No authorization token provided for URL '" + BASE_PATH + QUERY_ENDPOINT + "'" ;
172
+ String queryPath = queryUrl .substring (StringUtils .ordinalIndexOf (queryUrl ,"/" ,3 ));
173
+ String expectedMessage = "No authorization token provided for URL '" + queryPath + "'" ;
150
174
151
175
given ()
152
176
.header ("Authorization" , "Bearer " + emptyToken )
153
177
.when ()
154
- .get (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
178
+ .get (queryUrl )
155
179
.then ()
156
180
.statusCode (is (SC_UNAUTHORIZED ))
157
181
.body (
158
182
"messages.find { it.messageNumber == 'ZWEAG131E' }.messageContent" , equalTo (expectedMessage )
159
183
);
160
184
}
161
185
162
- @ Test
163
- void doQueryWithWrongHttpMethod () {
164
- String expectedMessage = "Authentication method 'POST' is not supported for URL '" +
165
- BASE_PATH + QUERY_ENDPOINT + "'" ;
186
+ @ ParameterizedTest
187
+ @ MethodSource ("queryUrlsSource" )
188
+ void doQueryWithWrongHttpMethod (String queryUrl ) {
189
+ String queryPath = queryUrl .substring (StringUtils .ordinalIndexOf (queryUrl ,"/" ,3 ));
190
+ String expectedMessage = "Authentication method 'POST' is not supported for URL '" + queryPath + "'" ;
166
191
167
192
given ()
168
193
.header ("Authorization" , "Bearer " + token )
169
194
.when ()
170
- .post (String . format ( "%s://%s:%d%s%s" , SCHEME , HOST , PORT , BASE_PATH , QUERY_ENDPOINT ) )
195
+ .post (queryUrl )
171
196
.then ()
172
197
.body (
173
- "messages.find { it.messageNumber == 'ZWEAG101E' }.messageContent" , equalTo (expectedMessage )
198
+ "messages.find { it.messageNumber == 'ZWEAG101E' }.messageContent" , equalTo (expectedMessage )
174
199
);
175
200
}
176
201
//@formatter:on
0 commit comments