Skip to content

Commit bfe43ba

Browse files
authored
Merge pull request #87 from Sprokof/update-register-api-test
Append test for register endpoint
2 parents 78ed056 + ea671b4 commit bfe43ba

File tree

13 files changed

+61
-36
lines changed

13 files changed

+61
-36
lines changed

src/test/java/com/digitalsanctuary/spring/user/api/UserApiTest.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.springframework.http.MediaType;
1313
import org.springframework.test.web.servlet.ResultActions;
1414
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
15-
import ui.jdbc.Jdbc;
15+
import com.digitalsanctuary.spring.user.jdbc.Jdbc;
1616

1717
import static com.digitalsanctuary.spring.user.api.helper.ApiTestHelper.buildUrlEncodedFormEntity;
1818
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -27,19 +27,29 @@ public static void deleteTestUser() {
2727
Jdbc.deleteTestUser(testUser);
2828
}
2929

30+
/**
31+
*
32+
* @param argumentsHolder
33+
* @throws Exception
34+
* testing with three param: new user data, exist user data and invalid user data
35+
*/
3036
@ParameterizedTest
3137
@ArgumentsSource(ApiTestRegistrationArgumentsProvider.class)
3238
public void registerUserAccount(ApiTestRegistrationArgumentsHolder argumentsHolder) throws Exception {
3339
testUser = argumentsHolder.getUserDto();
3440
ResultActions action = perform(MockMvcRequestBuilders.post(URL)
3541
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
3642
.content(buildUrlEncodedFormEntity(testUser)));
37-
if (argumentsHolder.getStatus() == ApiTestRegistrationArgumentsHolder.UserStatus.NEW) {
43+
44+
if (argumentsHolder.getStatus() == ApiTestRegistrationArgumentsHolder.DataStatus.NEW) {
3845
action.andExpect(status().isOk());
3946
}
40-
if (argumentsHolder.getStatus() == ApiTestRegistrationArgumentsHolder.UserStatus.EXIST) {
47+
if (argumentsHolder.getStatus() == ApiTestRegistrationArgumentsHolder.DataStatus.EXIST) {
4148
action.andExpect(status().isConflict());
4249
}
50+
if (argumentsHolder.getStatus() == ApiTestRegistrationArgumentsHolder.DataStatus.INVALID) {
51+
action.andExpect(status().is5xxServerError());
52+
}
4353

4454
RegistrationResponse actual = JsonUtil.readValue(action.andReturn()
4555
.getResponse().getContentAsString(), RegistrationResponse.class);

src/test/java/com/digitalsanctuary/spring/user/api/data/ApiTestData.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ public static UserDto getUserDto() {
1414
return userDto;
1515
}
1616

17+
public static UserDto getEmptyUserDto() {
18+
return new UserDto();
19+
}
20+
1721
public static RegistrationResponse successRegistration() {
1822
return new RegistrationResponse(
1923
true, 0,
@@ -28,4 +32,13 @@ public static RegistrationResponse userAlreadyExist() {
2832
new String[]{"An account already exists for the email address"}, null
2933
);
3034
}
35+
36+
public static RegistrationResponse systemError() {
37+
return new RegistrationResponse(
38+
false, 5, null,
39+
new String[]{"System Error!"}, null
40+
);
41+
}
42+
43+
3144
}

src/test/java/com/digitalsanctuary/spring/user/api/provider/ApiTestRegistrationArgumentsHolder.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@
55

66
public class ApiTestRegistrationArgumentsHolder {
77

8-
public enum UserStatus {
8+
public enum DataStatus {
99
NEW,
10-
EXIST
10+
EXIST,
11+
INVALID
1112
}
1213

1314
private final UserDto userDto;
14-
private final UserStatus status;
15+
private final DataStatus status;
1516
private final RegistrationResponse response;
1617

1718

18-
public ApiTestRegistrationArgumentsHolder(UserDto userDto, UserStatus status, RegistrationResponse response) {
19+
public ApiTestRegistrationArgumentsHolder(UserDto userDto, DataStatus status, RegistrationResponse response) {
1920
this.userDto = userDto;
2021
this.status = status;
2122
this.response = response;
@@ -25,7 +26,7 @@ public UserDto getUserDto() {
2526
return userDto;
2627
}
2728

28-
public UserStatus getStatus() {
29+
public DataStatus getStatus() {
2930
return status;
3031
}
3132

src/test/java/com/digitalsanctuary/spring/user/api/provider/ApiTestRegistrationArgumentsProvider.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,22 @@ public class ApiTestRegistrationArgumentsProvider implements ArgumentsProvider {
1313
public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) throws Exception {
1414
return Stream.of(
1515
new ApiTestRegistrationArgumentsHolder(
16-
ApiTestData.getUserDto(),
17-
ApiTestRegistrationArgumentsHolder.UserStatus.NEW,
18-
ApiTestData.successRegistration()
16+
ApiTestData.getEmptyUserDto(),
17+
ApiTestRegistrationArgumentsHolder.DataStatus.INVALID,
18+
ApiTestData.systemError()
1919
),
2020

2121
new ApiTestRegistrationArgumentsHolder(
2222
ApiTestData.getUserDto(),
23-
ApiTestRegistrationArgumentsHolder.UserStatus.EXIST,
24-
ApiTestData.userAlreadyExist()
25-
)
23+
ApiTestRegistrationArgumentsHolder.DataStatus.NEW,
24+
ApiTestData.successRegistration()
25+
),
2626

27+
new ApiTestRegistrationArgumentsHolder(
28+
ApiTestData.getUserDto(),
29+
ApiTestRegistrationArgumentsHolder.DataStatus.EXIST,
30+
ApiTestData.userAlreadyExist()
31+
)
2732
).map(Arguments::of);
2833
}
2934
}

src/test/java/ui/jdbc/ConnectionManager.java renamed to src/test/java/com/digitalsanctuary/spring/user/jdbc/ConnectionManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ui.jdbc;
1+
package com.digitalsanctuary.spring.user.jdbc;
22

33
import java.sql.Connection;
44
import java.sql.DriverManager;

src/test/java/ui/jdbc/Jdbc.java renamed to src/test/java/com/digitalsanctuary/spring/user/jdbc/Jdbc.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package ui.jdbc;
1+
package com.digitalsanctuary.spring.user.jdbc;
22

33
import com.digitalsanctuary.spring.user.dto.UserDto;
44
import java.sql.Connection;
55
import java.sql.PreparedStatement;
66
import java.sql.ResultSet;
77
import java.sql.SQLException;
88

9-
import static ui.data.UiTestData.TEST_USER_ENCODED_PASSWORD;
9+
import static com.digitalsanctuary.spring.user.ui.data.UiTestData.TEST_USER_ENCODED_PASSWORD;
1010

1111
/**
1212
* Using for delete/save user test data
@@ -53,7 +53,7 @@ public static void saveTestUser(UserDto userDto) {
5353

5454
private static void execute(Connection connection, String query, Object[] params) throws SQLException {
5555
PreparedStatement statement = connection.prepareStatement(query);
56-
for(int i = 0; i < params.length; i++) {
56+
for(int i = 0; i < params.length; i ++) {
5757
Object param = params[i];
5858
if (param instanceof Integer) {
5959
statement.setInt((i + 1), (Integer) param);

src/test/java/ui/BaseUiTest.java renamed to src/test/java/com/digitalsanctuary/spring/user/ui/BaseUiTest.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
package ui;
1+
package com.digitalsanctuary.spring.user.ui;
22

33
import com.codeborne.selenide.Configuration;
44
import com.codeborne.selenide.Selenide;
5-
import com.digitalsanctuary.spring.user.UserApplication;
6-
import com.digitalsanctuary.spring.user.config.TestConfig;
75
import io.github.bonigarcia.wdm.WebDriverManager;
86
import org.junit.jupiter.api.AfterEach;
97
import org.junit.jupiter.api.BeforeEach;
@@ -51,5 +49,4 @@ void setDriver(Driver driver) {
5149
this.driver = driver;
5250
}
5351

54-
5552
}

src/test/java/ui/SpringUserFrameworkUiTest.java renamed to src/test/java/com/digitalsanctuary/spring/user/ui/SpringUserFrameworkUiTest.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
package ui;
1+
package com.digitalsanctuary.spring.user.ui;
22

33

44
import com.digitalsanctuary.spring.user.dto.UserDto;
55
import org.junit.jupiter.api.AfterEach;
66
import org.junit.jupiter.api.Assertions;
77
import org.junit.jupiter.api.Test;
8-
import ui.data.UiTestData;
9-
import ui.jdbc.Jdbc;
10-
import ui.page.LoginPage;
11-
import ui.page.LoginSuccessPage;
12-
import ui.page.RegisterPage;
13-
import ui.page.SuccessRegisterPage;
8+
import com.digitalsanctuary.spring.user.ui.data.UiTestData;
9+
import com.digitalsanctuary.spring.user.jdbc.Jdbc;
10+
import com.digitalsanctuary.spring.user.ui.page.LoginPage;
11+
import com.digitalsanctuary.spring.user.ui.page.LoginSuccessPage;
12+
import com.digitalsanctuary.spring.user.ui.page.RegisterPage;
13+
import com.digitalsanctuary.spring.user.ui.page.SuccessRegisterPage;
1414

15-
import static ui.data.UiTestData.*;
15+
import static com.digitalsanctuary.spring.user.ui.data.UiTestData.*;
1616

1717
public class SpringUserFrameworkUiTest extends BaseUiTest {
1818

@@ -61,5 +61,4 @@ public void successSignIn() {
6161
Assertions.assertTrue(welcomeMessage.contains(firstName));
6262
}
6363

64-
6564
}

src/test/java/ui/data/UiTestData.java renamed to src/test/java/com/digitalsanctuary/spring/user/ui/data/UiTestData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ui.data;
1+
package com.digitalsanctuary.spring.user.ui.data;
22

33
import com.digitalsanctuary.spring.user.dto.UserDto;
44
public class UiTestData {

src/test/java/ui/page/LoginPage.java renamed to src/test/java/com/digitalsanctuary/spring/user/ui/page/LoginPage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ui.page;
1+
package com.digitalsanctuary.spring.user.ui.page;
22

33
import com.codeborne.selenide.Selenide;
44
import com.codeborne.selenide.SelenideElement;

0 commit comments

Comments
 (0)