Skip to content

Commit b133ee6

Browse files
Esmaeeilenanithaysvieira
authored andcommitted
Es/enhancement/add tests (#105)
* add abstract to address entity * #80 fix update car * fix and complete registration test * fix Registration IT * fix and complete registration test * fix Registration IT * add more test into registration * add more test into registration * add more test into registration * add more test into registration * add more test into registration
1 parent 20ddfeb commit b133ee6

File tree

2 files changed

+72
-2
lines changed

2 files changed

+72
-2
lines changed

carRental/src/main/java/com/amigoscode/chohort2/carRental/driverLicense/DriverLicenseRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
import com.amigoscode.chohort2.carRental.abstracts.repository.CRJpaRepository;
44
import org.springframework.stereotype.Repository;
55

6+
import java.util.Optional;
7+
68
@Repository
79
public interface DriverLicenseRepository extends CRJpaRepository<DriverLicense,Long> {
10+
11+
Optional<DriverLicense> findByDriverLicenseNumber(String number);
812
}

carRental/src/test/java/com/amigoscode/chohort2/carRental/registration/RegistrationControllerIT.java

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
package com.amigoscode.chohort2.carRental.registration;
22

33
import com.amigoscode.chohort2.carRental.AbstractTestContainer;
4+
import com.amigoscode.chohort2.carRental.authority.AuthorityConstants;
5+
import com.amigoscode.chohort2.carRental.carProvider.CarProviderRepository;
6+
import com.amigoscode.chohort2.carRental.carProvider.VM.CarProviderVM;
7+
import com.amigoscode.chohort2.carRental.carProviderUser.CarProviderUser;
8+
import com.amigoscode.chohort2.carRental.carProviderUser.CarProviderUserRepository;
9+
import com.amigoscode.chohort2.carRental.driverLicense.DriverLicenseRepository;
410
import com.amigoscode.chohort2.carRental.driverLicense.VM.DriverLicenseVM;
11+
import com.amigoscode.chohort2.carRental.registration.VM.CarProviderRegistrationVM;
512
import com.amigoscode.chohort2.carRental.registration.VM.ClientRegistrationVM;
13+
import com.amigoscode.chohort2.carRental.user.User;
614
import com.amigoscode.chohort2.carRental.user.UserRepository;
715
import org.junit.jupiter.api.Test;
816
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +19,8 @@
1119
import reactor.core.publisher.Mono;
1220

1321
import java.time.LocalDate;
22+
import java.util.Optional;
23+
1424
import static org.assertj.core.api.Assertions.*;
1525

1626
class RegistrationControllerIT extends AbstractTestContainer {
@@ -21,17 +31,26 @@ class RegistrationControllerIT extends AbstractTestContainer {
2131
@Autowired
2232
private RegistrationService registrationService;
2333

34+
@Autowired
35+
private UserRepository userRepository;
36+
37+
@Autowired
38+
private DriverLicenseRepository driverLicenseRepository;
2439

40+
@Autowired
41+
private CarProviderRepository carProviderRepository;
2542

2643
@Autowired
27-
private UserRepository userRepository;
44+
private CarProviderUserRepository carProviderUserRepository;
45+
46+
2847

2948

3049
private static final String API_URL = "api/v1/registrations/";
3150

3251

3352
@Test
34-
void givenClientRegistration_whenSave_thenCreateNewUser() {
53+
void givenClientRegistration_whenSave_thenCreateNewClient() {
3554
// given precondition or setup
3655
ClientRegistrationVM clientRegistrationVM = (ClientRegistrationVM) new ClientRegistrationVM()
3756
.setUsername("esmaeeil")
@@ -67,5 +86,52 @@ void givenClientRegistration_whenSave_thenCreateNewUser() {
6786

6887

6988

89+
}
90+
91+
@Test
92+
void givenCarProviderRegistration_whenSave_thenCreateNewCarProvider() {
93+
// given precondition or setup
94+
CarProviderRegistrationVM carProviderRegistrationVM = (CarProviderRegistrationVM) new CarProviderRegistrationVM()
95+
.setUsername("carProvider")
96+
.setFirstName("esmaeeil")
97+
.setLastName("enani")
98+
.setEmail("carProvider@gmail.com")
99+
.setNin("12345678988")
100+
.setPassword("123456789");
101+
102+
CarProviderVM carProviderVM = new CarProviderVM()
103+
.setName("car provider test")
104+
.setCrNumber("123456789");
105+
106+
carProviderRegistrationVM.setCarProviderVM(carProviderVM);
107+
108+
// when - action or the behaviour that we are going test
109+
webTestClient
110+
.post()
111+
.uri(API_URL + "car-providers")
112+
.contentType(MediaType.APPLICATION_JSON)
113+
.accept(MediaType.APPLICATION_JSON)
114+
.body(Mono.just(carProviderRegistrationVM), CarProviderRegistrationVM.class)
115+
.exchange()
116+
.expectStatus().isCreated();
117+
118+
119+
// then verify the output
120+
Optional<User> userOpt = userRepository.findByUsernameWithAuthorities(carProviderRegistrationVM.getUsername());
121+
assertThat(userOpt).isPresent();
122+
User user = userOpt.get();
123+
assertThat(user.getAuthorities())
124+
.anyMatch(a -> a.getName().equals(AuthorityConstants.CAR_PROVIDER));
125+
126+
assertThat(user.getAuthorities())
127+
.noneMatch(a -> a.getName().equals(AuthorityConstants.CLIENT))
128+
.noneMatch(a -> a.getName().equals(AuthorityConstants.ADMIN));
129+
130+
Optional<CarProviderUser> carProviderUserOpt = carProviderUserRepository.findByUserId(user.getId());
131+
assertThat(carProviderUserOpt).isPresent();
132+
CarProviderUser carProviderUser = carProviderUserOpt.get();
133+
assertThat(carProviderRepository.findById(carProviderUser.getCarProviderId())).isPresent();
134+
135+
70136
}
71137
}

0 commit comments

Comments
 (0)