Skip to content

Commit c15efbd

Browse files
committed
feat(tests): add unit tests
1 parent d39b342 commit c15efbd

5 files changed

Lines changed: 166 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.xpeho.spring_boot_java_random_user.data.models.api;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.*;
5+
6+
class RandomUserNameDAOTest {
7+
@Test
8+
void testGetSetAllFields() {
9+
RandomUserNameDAO name = new RandomUserNameDAO();
10+
name.setFirst("John");
11+
name.setLast("Doe");
12+
name.setTitle("Mr");
13+
assertEquals("John", name.getFirst());
14+
assertEquals("Doe", name.getLast());
15+
assertEquals("Mr", name.getTitle());
16+
}
17+
@Test
18+
void testDefaultFieldsAreNull() {
19+
RandomUserNameDAO name = new RandomUserNameDAO();
20+
assertNull(name.getFirst());
21+
assertNull(name.getLast());
22+
assertNull(name.getTitle());
23+
}
24+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.xpeho.spring_boot_java_random_user.data.models.api;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.*;
5+
6+
class RandomUserPictureDAOTest {
7+
@Test
8+
void testGetSetMedium() {
9+
RandomUserPictureDAO picture = new RandomUserPictureDAO();
10+
picture.setMedium("pic.jpg");
11+
assertEquals("pic.jpg", picture.getMedium());
12+
}
13+
@Test
14+
void testDefaultMediumIsNull() {
15+
RandomUserPictureDAO picture = new RandomUserPictureDAO();
16+
assertNull(picture.getMedium());
17+
}
18+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.xpeho.spring_boot_java_random_user.data.models.api;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.*;
5+
6+
class RandomUserResponseTest {
7+
@Test
8+
void testGetSetResults() {
9+
RandomUserResponse response = new RandomUserResponse();
10+
RandomUserResultDAO[] arr = new RandomUserResultDAO[2];
11+
arr[0] = new RandomUserResultDAO();
12+
arr[1] = new RandomUserResultDAO();
13+
response.setResults(arr);
14+
assertArrayEquals(arr, response.getResults());
15+
}
16+
17+
@Test
18+
void testDefaultResultsIsNull() {
19+
RandomUserResponse response = new RandomUserResponse();
20+
assertNull(response.getResults());
21+
}
22+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.xpeho.spring_boot_java_random_user.data.models.api;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.*;
5+
6+
class RandomUserResultDAOTest {
7+
@Test
8+
void testGetSetAllFields() {
9+
RandomUserResultDAO result = new RandomUserResultDAO();
10+
result.setGender("male");
11+
RandomUserNameDAO name = new RandomUserNameDAO();
12+
result.setName(name);
13+
result.setEmail("john@doe.com");
14+
result.setPhone("1234");
15+
RandomUserPictureDAO picture = new RandomUserPictureDAO();
16+
result.setPicture(picture);
17+
result.setNat("FR");
18+
assertEquals("male", result.getGender());
19+
assertSame(name, result.getName());
20+
assertEquals("john@doe.com", result.getEmail());
21+
assertEquals("1234", result.getPhone());
22+
assertSame(picture, result.getPicture());
23+
assertEquals("FR", result.getNat());
24+
}
25+
@Test
26+
void testDefaultFieldsAreNull() {
27+
RandomUserResultDAO result = new RandomUserResultDAO();
28+
assertNull(result.getGender());
29+
assertNull(result.getName());
30+
assertNull(result.getEmail());
31+
assertNull(result.getPhone());
32+
assertNull(result.getPicture());
33+
assertNull(result.getNat());
34+
}
35+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.xpeho.spring_boot_java_random_user.data.sources.api;
2+
3+
import com.xpeho.spring_boot_java_random_user.data.converters.UserConverter;
4+
import com.xpeho.spring_boot_java_random_user.data.models.api.RandomUserResponse;
5+
import com.xpeho.spring_boot_java_random_user.data.models.api.RandomUserResultDAO;
6+
import com.xpeho.spring_boot_java_random_user.domain.entities.UserEntity;
7+
import org.junit.jupiter.api.BeforeEach;
8+
import org.junit.jupiter.api.Test;
9+
import retrofit2.Call;
10+
import retrofit2.Response;
11+
12+
import java.io.IOException;
13+
import java.util.List;
14+
15+
import static org.junit.jupiter.api.Assertions.*;
16+
import static org.mockito.Mockito.*;
17+
18+
class RandomUserProviderImplTest {
19+
private RandomUserApi randomUserApi;
20+
private UserConverter userConverter;
21+
private RandomUserProviderImpl provider;
22+
private Call<RandomUserResponse> call;
23+
24+
@BeforeEach
25+
void setUp() {
26+
randomUserApi = mock(RandomUserApi.class);
27+
userConverter = mock(UserConverter.class);
28+
call = mock(Call.class);
29+
provider = new RandomUserProviderImpl(randomUserApi, userConverter);
30+
}
31+
32+
@Test
33+
void fetchRandomUsers_success() throws IOException {
34+
int count = 2;
35+
RandomUserResponse responseObj = new RandomUserResponse();
36+
RandomUserResultDAO dao1 = new RandomUserResultDAO();
37+
RandomUserResultDAO dao2 = new RandomUserResultDAO();
38+
responseObj.setResults(new RandomUserResultDAO[]{dao1, dao2});
39+
UserEntity entity1 = new UserEntity(null, "a", "b", "c", "d", "e", "f", "g", "h");
40+
UserEntity entity2 = new UserEntity(null, "i", "j", "k", "l", "m", "n", "o", "p");
41+
when(randomUserApi.getRandomUsers(count)).thenReturn(call);
42+
when(call.execute()).thenReturn(Response.success(responseObj));
43+
when(userConverter.fromApiModel(dao1)).thenReturn(entity1);
44+
when(userConverter.fromApiModel(dao2)).thenReturn(entity2);
45+
46+
List<UserEntity> result = provider.fetchRandomUsers(count);
47+
assertEquals(2, result.size());
48+
assertEquals(entity1, result.get(0));
49+
assertEquals(entity2, result.get(1));
50+
}
51+
52+
@Test
53+
void fetchRandomUsers_unsuccessfulResponse_throwsIOException() throws IOException {
54+
int count = 1;
55+
when(randomUserApi.getRandomUsers(count)).thenReturn(call);
56+
when(call.execute()).thenReturn(Response.error(500, okhttp3.ResponseBody.create(null, "error")));
57+
assertThrows(IOException.class, () -> provider.fetchRandomUsers(count));
58+
}
59+
60+
@Test
61+
void fetchRandomUsers_nullBody_throwsIOException() throws IOException {
62+
int count = 1;
63+
when(randomUserApi.getRandomUsers(count)).thenReturn(call);
64+
when(call.execute()).thenReturn(Response.success(null));
65+
assertThrows(IOException.class, () -> provider.fetchRandomUsers(count));
66+
}
67+
}

0 commit comments

Comments
 (0)