Skip to content

Commit b07e8fd

Browse files
Ashish MishraAshish Mishra
authored andcommitted
adding test for create api
1 parent 5a5da94 commit b07e8fd

4 files changed

Lines changed: 63 additions & 15 deletions

File tree

src/main/java/com/beneite/SpringWithDocker/controller/UserController.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class UserController {
4242
)
4343
@PostMapping("create")
4444
public ResponseEntity<UserDto> createUserApi(@Valid @RequestBody UserDto userEntity){
45-
UserDto savedUser = userServiceImpl.createUser(userEntity);
45+
UserDto savedUser = userServiceImpl.createUserImplementation(userEntity);
4646
return new ResponseEntity<>(savedUser, HttpStatus.CREATED);
4747
}
4848

@@ -57,7 +57,7 @@ public ResponseEntity<UserDto> createUserApi(@Valid @RequestBody UserDto userEnt
5757
// Api to get the user by id, end point: http://localhost:8080/api/user/getUserById/2
5858
@GetMapping("getUserById/{id}")
5959
public ResponseEntity<UserDto> getUserByIdApi(@PathVariable("id") Long userId){
60-
UserDto getUser = userServiceImpl.getUserById(userId);
60+
UserDto getUser = userServiceImpl.getUserByIdImplementation(userId);
6161
return new ResponseEntity<>(getUser, HttpStatus.OK);
6262
}
6363

@@ -72,7 +72,7 @@ public ResponseEntity<UserDto> getUserByIdApi(@PathVariable("id") Long userId){
7272
// Api to get all the users data, endpoint: http://localhost:8080/api/user/getAllUser
7373
@GetMapping("getAllUser")
7474
public ResponseEntity<List<UserDto>> getAllUsersApi(){
75-
List<UserDto> allUsersResponse = userServiceImpl.getAllUsers();
75+
List<UserDto> allUsersResponse = userServiceImpl.getAllUsersImplementation();
7676
return new ResponseEntity<>(allUsersResponse, HttpStatus.OK);
7777
}
7878

@@ -88,7 +88,7 @@ public ResponseEntity<List<UserDto>> getAllUsersApi(){
8888
@PutMapping("update/{id}")
8989
public ResponseEntity<UserDto> updateUserDetailsApi(@PathVariable("id") Long userId,@Valid @RequestBody UserDto userEntity){
9090
userEntity.setId(userId);
91-
UserDto updatedUser = userServiceImpl.updateUser(userEntity);
91+
UserDto updatedUser = userServiceImpl.updateUserImplementation(userEntity);
9292
return new ResponseEntity<>(updatedUser, HttpStatus.OK);
9393
}
9494

@@ -103,7 +103,7 @@ public ResponseEntity<UserDto> updateUserDetailsApi(@PathVariable("id") Long use
103103
// Api to delete the users data, endpoint: http://localhost:8080/api/user/delete/2
104104
@DeleteMapping("delete/{id}")
105105
public ResponseEntity<String> deleteUserApi(@PathVariable("id") Long userId){
106-
userServiceImpl.deleteUser(userId);
106+
userServiceImpl.deleteUserImplementation(userId);
107107
return new ResponseEntity<>("User with id:"+userId+" Deleted", HttpStatus.OK);
108108
}
109109

src/main/java/com/beneite/SpringWithDocker/service/UserService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
public interface UserService {
99

10-
UserDto createUser (UserDto userEntity);
11-
UserDto getUserById (Long userId);
12-
List<UserDto> getAllUsers();
13-
UserDto updateUser(UserDto userDto);
14-
void deleteUser(Long userId);
10+
UserDto createUserImplementation(UserDto userEntity);
11+
UserDto getUserByIdImplementation(Long userId);
12+
List<UserDto> getAllUsersImplementation();
13+
UserDto updateUserImplementation(UserDto userDto);
14+
void deleteUserImplementation(Long userId);
1515

1616
}

src/main/java/com/beneite/SpringWithDocker/service/implementation/UserServiceImpl.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class UserServiceImpl implements UserService {
2323
private UserRepository userRepository;
2424
private ModelMapper modelMapper;
2525
@Override
26-
public UserDto createUser(UserDto userDto) {
26+
public UserDto createUserImplementation(UserDto userDto) {
2727

2828
Optional<UserEntity> ifEmailExist = userRepository.findByEmail(userDto.getEmail()); // check if email exist in DB
2929
if(ifEmailExist.isPresent()){
@@ -37,7 +37,7 @@ public UserDto createUser(UserDto userDto) {
3737
}
3838

3939
@Override
40-
public UserDto getUserById(Long id) {
40+
public UserDto getUserByIdImplementation(Long id) {
4141
UserEntity userEntity = userRepository.findById(id).orElseThrow(
4242
() -> new ResourceNotFoundException("User", "id", id)
4343
);
@@ -46,13 +46,13 @@ public UserDto getUserById(Long id) {
4646
}
4747

4848
@Override
49-
public List<UserDto> getAllUsers() {
49+
public List<UserDto> getAllUsersImplementation() {
5050
List<UserEntity> allUsers = userRepository.findAll();
5151
return allUsers.stream().map(UserEntity-> AutoUserMapper.MAPPER.mapToDto(UserEntity)).collect(Collectors.toList());
5252
}
5353

5454
@Override
55-
public UserDto updateUser(UserDto userDto) {
55+
public UserDto updateUserImplementation(UserDto userDto) {
5656
UserEntity existingData = userRepository.findById(userDto.getId()).orElseThrow(
5757
() -> new ResourceNotFoundException("User", "id", userDto.getId())
5858
);
@@ -72,7 +72,7 @@ public UserDto updateUser(UserDto userDto) {
7272
}
7373

7474
@Override
75-
public void deleteUser(Long userId) {
75+
public void deleteUserImplementation(Long userId) {
7676
UserEntity existingData = userRepository.findById(userId).orElseThrow(
7777
() -> new ResourceNotFoundException("User", "id", userId)
7878
);
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.beneite.SpringWithDocker.controllerTest;
2+
3+
import com.beneite.SpringWithDocker.controller.UserController;
4+
import com.beneite.SpringWithDocker.dto.UserDto;
5+
import com.beneite.SpringWithDocker.service.implementation.UserServiceImpl;
6+
import org.junit.jupiter.api.Test;
7+
import org.junit.jupiter.api.extension.ExtendWith;
8+
import org.mockito.InjectMocks;
9+
import org.mockito.junit.jupiter.MockitoExtension;
10+
import org.springframework.boot.test.context.SpringBootTest;
11+
import org.springframework.boot.test.mock.mockito.MockBean;
12+
import org.springframework.http.HttpStatus;
13+
import org.springframework.http.ResponseEntity;
14+
15+
import static org.junit.jupiter.api.Assertions.assertEquals;
16+
import static org.junit.jupiter.api.Assertions.assertNotNull;
17+
import static org.mockito.ArgumentMatchers.any;
18+
import static org.mockito.Mockito.when;
19+
20+
@SpringBootTest
21+
@ExtendWith(MockitoExtension.class) // Ensures Mockito works
22+
class UserControllerTest {
23+
24+
@InjectMocks
25+
private UserController userController; // Ensures mock dependencies are injected
26+
27+
@MockBean
28+
private UserServiceImpl userServiceImpl; // Tells Spring to mock and inject this bean
29+
30+
@Test
31+
public void testCreateUserApi(){
32+
// Given: Mock Service Layer
33+
when(userServiceImpl.createUserImplementation(any(UserDto.class)))
34+
.thenReturn(buildCreateUserDto());
35+
36+
// Act: Call the controller method
37+
ResponseEntity<UserDto> createUserResponse = userController.createUserApi(buildCreateUserDto());
38+
39+
// Assert: Validate the response
40+
assertNotNull(createUserResponse, "Response should not be null");
41+
assertEquals(HttpStatus.CREATED, createUserResponse.getStatusCode());
42+
}
43+
44+
private UserDto buildCreateUserDto(){
45+
return new UserDto(1L, "Ashish.Mishra@yopmail.com", "Ashish", "Mishra");
46+
}
47+
48+
}

0 commit comments

Comments
 (0)