2019-11-24 17:48:40 +00:00
|
|
|
package it.unisannio.ding.ids.wedroid.wrapper.api;
|
2019-11-13 16:00:17 +00:00
|
|
|
|
2020-01-18 11:54:19 +00:00
|
|
|
import static junit.framework.TestCase.assertNotNull;
|
|
|
|
import static junit.framework.TestCase.assertTrue;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
import static org.junit.Assert.assertFalse;
|
|
|
|
|
2019-11-24 17:48:40 +00:00
|
|
|
import it.unisannio.ding.ids.wedroid.wrapper.entity.Service;
|
|
|
|
import it.unisannio.ding.ids.wedroid.wrapper.entity.User;
|
|
|
|
import it.unisannio.ding.ids.wedroid.wrapper.entity.UserEmail;
|
|
|
|
import it.unisannio.ding.ids.wedroid.wrapper.entity.UserProfile;
|
2020-01-18 11:54:19 +00:00
|
|
|
import java.io.IOException;
|
|
|
|
import java.net.HttpURLConnection;
|
|
|
|
import java.util.List;
|
2019-11-13 16:00:17 +00:00
|
|
|
import okhttp3.mockwebserver.MockResponse;
|
|
|
|
import okhttp3.mockwebserver.MockWebServer;
|
|
|
|
import org.junit.After;
|
|
|
|
import org.junit.Before;
|
|
|
|
import org.junit.Test;
|
|
|
|
import retrofit2.Retrofit;
|
|
|
|
import retrofit2.converter.gson.GsonConverterFactory;
|
|
|
|
|
|
|
|
public class UserServiceTest {
|
|
|
|
private MockWebServer mockWebServer = new MockWebServer();
|
|
|
|
private UserService service = null;
|
|
|
|
|
|
|
|
@Before
|
|
|
|
public void setUp() {
|
|
|
|
try {
|
|
|
|
mockWebServer.start();
|
|
|
|
service = new Retrofit.Builder()
|
|
|
|
.baseUrl(mockWebServer.url("/"))
|
|
|
|
.addConverterFactory(GsonConverterFactory.create())
|
|
|
|
.build()
|
|
|
|
.create(UserService.class);
|
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@After
|
|
|
|
public void teardown() {
|
|
|
|
try {
|
|
|
|
mockWebServer.shutdown();
|
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2020-01-18 11:54:19 +00:00
|
|
|
public void getAllUsersTest() {
|
2019-11-13 16:00:17 +00:00
|
|
|
MockResponse response = new MockResponse()
|
|
|
|
.setResponseCode(HttpURLConnection.HTTP_OK)
|
|
|
|
.setBody(
|
|
|
|
"[{\"_id\":\"Si69gNgkJfQuk6uiJ\",\"username\":\"norangebit\"}," +
|
|
|
|
"{\"_id\":\"8rsnfEPkfMS49Pv6q\",\"username\":\"noemi\"}," +
|
|
|
|
"{\"_id\":\"jPdkf3a9bmfZWx3GR\",\"username\":\"umberto\"}]"
|
|
|
|
);
|
|
|
|
mockWebServer.enqueue(response);
|
|
|
|
|
2020-01-18 11:54:19 +00:00
|
|
|
try {
|
2019-11-13 16:00:17 +00:00
|
|
|
List<User> users = service.getAllUser().execute().body();
|
|
|
|
assertNotNull(users);
|
|
|
|
assertEquals("Si69gNgkJfQuk6uiJ", users.get(0).getId());
|
|
|
|
assertEquals("norangebit", users.get(0).getUsername());
|
|
|
|
assertEquals("8rsnfEPkfMS49Pv6q", users.get(1).getId());
|
|
|
|
assertEquals("noemi", users.get(1).getUsername());
|
|
|
|
assertEquals("jPdkf3a9bmfZWx3GR", users.get(2).getId());
|
|
|
|
assertEquals("umberto", users.get(2).getUsername());
|
2020-01-18 11:54:19 +00:00
|
|
|
} catch (IOException e) {
|
2019-11-13 16:00:17 +00:00
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2020-01-18 11:54:19 +00:00
|
|
|
public void getUser() {
|
2019-11-13 16:00:17 +00:00
|
|
|
MockResponse response = new MockResponse()
|
|
|
|
.setResponseCode(HttpURLConnection.HTTP_OK)
|
|
|
|
.setBody(user1);
|
|
|
|
mockWebServer.enqueue(response);
|
|
|
|
|
|
|
|
try {
|
|
|
|
User user = service.getUser("jPdkf3a9bmfZWx3GR").execute().body();
|
|
|
|
assert user != null;
|
|
|
|
List<UserEmail> userEmail = user.getEmails();
|
|
|
|
UserProfile userProfile = user.getProfile();
|
2019-11-14 14:54:22 +00:00
|
|
|
Service ser = user.getServices();
|
2019-11-13 16:00:17 +00:00
|
|
|
assertEquals("jPdkf3a9bmfZWx3GR", user.getId());
|
|
|
|
assertEquals("umberto", user.getUsername());
|
|
|
|
assertEquals("password", user.getAuthenticationMethod());
|
|
|
|
assertTrue(user.isAdmin());
|
2019-11-14 15:53:42 +00:00
|
|
|
//assertEquals("Mon Oct 14 20:14:38 CEST 2019", user.getCreatedAt());
|
2019-11-13 16:00:17 +00:00
|
|
|
assertFalse(userEmail.isEmpty());
|
2019-11-14 14:54:22 +00:00
|
|
|
assertEquals("my@email.com", userEmail.get(0).getEmail());
|
2019-11-13 16:00:17 +00:00
|
|
|
assertFalse(userEmail.get(0).isVerified());
|
2019-11-14 14:54:22 +00:00
|
|
|
assertEquals("BOARD_VIEW_SWIMLANES", userProfile.getBoardView().toString());
|
2019-11-13 16:00:17 +00:00
|
|
|
assertEquals("zo82BZYxFTNBpb7jX", userProfile.getCardTemplatesSwimlaneId());
|
2019-11-14 14:54:22 +00:00
|
|
|
assertEquals("_MODIFIEDAT", userProfile.getListSortBy().toString());
|
|
|
|
assertEquals(1, ser.getEmail().getVerificationTokens().size());
|
|
|
|
assertEquals("my@email.com",
|
|
|
|
ser.getEmail().getVerificationTokens().get(0).getAddress());
|
|
|
|
assertEquals("$2a$10$CRZrpT4x.VpG2FdJxR3rN.9m0NbQb0OPsSPBDAZukggxrskMtWA8.",
|
|
|
|
ser.getPassword().getBcrypt());
|
|
|
|
assertEquals(2, ser.getResume().getLoginTokens().size());
|
|
|
|
assertEquals("CY/PWeDa3fAkl+k94+GWzCtpB5nPcVxLzzzjXs4kI3A=", ser.getResume().getLoginTokens().get(0).getHashedToken());
|
2019-11-13 16:00:17 +00:00
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2019-11-21 08:22:53 +00:00
|
|
|
@Test
|
2020-01-18 11:54:19 +00:00
|
|
|
public void getCurrentUser() {
|
2019-11-21 08:22:53 +00:00
|
|
|
MockResponse mockResponse = new MockResponse()
|
|
|
|
.setResponseCode(HttpURLConnection.HTTP_OK)
|
|
|
|
.setBody(user2);
|
|
|
|
mockWebServer.enqueue(mockResponse);
|
|
|
|
|
|
|
|
try {
|
|
|
|
User user = service.getCurrentUser().execute().body();
|
|
|
|
assert user != null;
|
|
|
|
UserProfile userProfile = user.getProfile();
|
|
|
|
assertNotNull(user);
|
|
|
|
assertEquals("jPdkf3a9bmfZWx3GR", user.getId());
|
|
|
|
assertEquals("umberto", user.getUsername());
|
|
|
|
assertEquals("password", user.getAuthenticationMethod());
|
|
|
|
assertTrue(user.isAdmin());
|
|
|
|
assertFalse(user.isLoginDisabled());
|
|
|
|
assertFalse(user.getEmails().isEmpty());
|
|
|
|
assertEquals(1, user.getEmails().size());
|
|
|
|
assertEquals("my@email.com", user.getEmails().get(0).getEmail());
|
|
|
|
assertNotNull(userProfile);
|
|
|
|
assertEquals("zo82BZYxFTNBpb7jX",
|
|
|
|
userProfile.getCardTemplatesSwimlaneId());
|
|
|
|
assertEquals("j6ZuPbwaN9nsCDxyS",
|
|
|
|
userProfile.getBoardTemplatesSwimlaneId());
|
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2019-11-13 16:00:17 +00:00
|
|
|
|
|
|
|
private static final String user1 = "{" +
|
|
|
|
"\"_id\":\"jPdkf3a9bmfZWx3GR\"," +
|
|
|
|
"\"username\":\"umberto\"," +
|
2019-11-14 14:54:22 +00:00
|
|
|
"\"emails\":[{\"address\":\"my@email.com\",\"verified\":false}]," +
|
2019-11-13 16:00:17 +00:00
|
|
|
"\"authenticationMethod\":\"password\"," +
|
|
|
|
"\"isAdmin\":\"true\"," +
|
|
|
|
"\"loginDisabled\":\"true\"," +
|
|
|
|
"\"profile\":{\"boardView\":\"board-view-swimlanes\",\"templatesBoardId\":\"eLvE8FnqvACfC9Rtb\"," +
|
|
|
|
"\"cardTemplatesSwimlaneId\":\"zo82BZYxFTNBpb7jX\",\"listTemplatesSwimlaneId\":\"Kja32A85P2HADWKFA\"," +
|
|
|
|
"\"boardTemplatesSwimlaneId\":\"j6ZuPbwaN9nsCDxyS\",\"listSortBy\":\"-modifiedAt\"}," +
|
2020-01-18 11:54:19 +00:00
|
|
|
"\"createdAt\":\"2019-10-14T18:14:38.249Z\"," +
|
2019-11-13 16:00:17 +00:00
|
|
|
"\"modifiedAt\":\"2019-11-09T17:55:36.976Z\"," +
|
2019-11-14 14:54:22 +00:00
|
|
|
"\"services\":{\n" +
|
|
|
|
" \"password\":{\n" +
|
|
|
|
" \"bcrypt\":\"$2a$10$CRZrpT4x.VpG2FdJxR3rN.9m0NbQb0OPsSPBDAZukggxrskMtWA8.\"\n" +
|
|
|
|
" },\n" +
|
|
|
|
" \"email\":{\n" +
|
|
|
|
" \"verificationTokens\":[\n" +
|
|
|
|
" {\n" +
|
|
|
|
" \"token\":\"8rzwpq_So2PVYHVSfrcc5f5QZnuV2wEtu7QRQGwOJx8\",\n" +
|
|
|
|
" \"address\":\"my@email.com\",\n" +
|
|
|
|
" \"when\":\"2017-09-13T06:45:53.157Z\"\n" +
|
|
|
|
" }\n" +
|
|
|
|
" ]\n" +
|
|
|
|
" },\n" +
|
|
|
|
" \"resume\":{\n" +
|
|
|
|
" \"loginTokens\":[\n" +
|
|
|
|
" {\n" +
|
|
|
|
" \"when\":\"2017-09-13T06:45:53.265Z\",\n" +
|
|
|
|
" \"hashedToken\":\"CY/PWeDa3fAkl+k94+GWzCtpB5nPcVxLzzzjXs4kI3A=\"\n" +
|
|
|
|
" },\n" +
|
|
|
|
" {\n" +
|
|
|
|
" \"when\":\"2017-09-16T06:06:19.741Z\",\n" +
|
|
|
|
" \"hashedToken\":\"74MQNXfsgjkItx/gpgPb29Y0MSNAvBrsnSGQmr4YGvQ=\"\n" +
|
|
|
|
" }\n" +
|
|
|
|
" ]\n" +
|
|
|
|
" }\n" +
|
|
|
|
"}\n" +
|
2019-11-13 16:00:17 +00:00
|
|
|
"}";
|
2019-11-21 08:22:53 +00:00
|
|
|
|
2020-01-18 11:54:19 +00:00
|
|
|
private static final String user2 = "{" +
|
2019-11-21 08:22:53 +00:00
|
|
|
"\"_id\":\"jPdkf3a9bmfZWx3GR\"," +
|
|
|
|
"\"createdAt\":\"2019-10-14T18:14:38.249Z\"," +
|
|
|
|
"\"username\":\"umberto\"," +
|
|
|
|
"\"emails\":[{\"address\":\"my@email.com\"," +
|
|
|
|
"\"verified\":false}]," +
|
|
|
|
"\"modifiedAt\":\"2019-11-09T17:55:36.976Z\"," +
|
|
|
|
"\"profile\":{\"boardView\":\"board-view-swimlanes\"," +
|
|
|
|
"\"templatesBoardId\":\"eLvE8FnqvACfC9Rtb\"," +
|
|
|
|
"\"cardTemplatesSwimlaneId\":\"zo82BZYxFTNBpb7jX\"," +
|
|
|
|
"\"listTemplatesSwimlaneId\":\"Kja32A85P2HADWKFA\"," +
|
|
|
|
"\"boardTemplatesSwimlaneId\":\"j6ZuPbwaN9nsCDxyS\"," +
|
|
|
|
"\"listSortBy\":\"-modifiedAt\"}," +
|
|
|
|
"\"authenticationMethod\":\"password\"," +
|
|
|
|
"\"isAdmin\":true," +
|
|
|
|
"\"loginDisabled\":false}";
|
2019-11-13 16:00:17 +00:00
|
|
|
}
|