Skip to content

Commit

Permalink
Added Tests for user authentication
Browse files Browse the repository at this point in the history
Signed-off-by: Akram-Fahim <akramadel2001@gmail.com>
  • Loading branch information
Akram-Fahim committed May 9, 2024
1 parent c223aad commit 87c3dfd
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
package com.workup.users;

import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;

import com.workup.shared.commands.users.requests.*;
import com.workup.shared.commands.users.responses.*;
import com.workup.shared.enums.HttpStatusCode;
import com.workup.shared.enums.ServiceQueueNames;
import com.workup.shared.enums.users.UserType;
import com.workup.shared.views.users.AchievementView;
import com.workup.shared.views.users.EducationView;
import com.workup.shared.views.users.ExperienceView;
import com.workup.users.db.Achievement;
import com.workup.users.db.Education;
import com.workup.users.db.Experience;
import com.workup.users.db.Freelancer;
import com.workup.users.db.*;
import com.workup.users.repositories.*;
import java.sql.Date;
import java.time.Instant;
Expand Down Expand Up @@ -51,6 +49,7 @@ class UsersApplicationTests {
@Autowired private FreelancerRepository freelancerRepository;
@Autowired private AchievementRepository achievementRepository;
@Autowired private EducationRepository educationRepository;
@Autowired private ClientRepository clientRepository;

@BeforeEach
void clearAll() {
Expand Down Expand Up @@ -79,6 +78,67 @@ static void setDatasourceProperties(DynamicPropertyRegistry registry) {
registry.add("spring.rabbitmq.password", rabbitMQContainer::getAdminPassword);
}

@Test
public void testFreelancerRegister() {
Freelancer freelancer = UsersTestUtils.generateRandomFreelancer();
FreelancerRegisterRequest request =
FreelancerRegisterRequest.builder()
.withEmail(freelancer.getEmail())
.withPassword(freelancer.getPassword_hash())
.withFullName(freelancer.getFull_name())
.withCity(freelancer.getCity())
.withJobTitle(freelancer.getJob_title())
.withBirthDate(freelancer.getBirthdate())
.build();
SignUpAndInResponse response =
(SignUpAndInResponse) template.convertSendAndReceive(ServiceQueueNames.USERS, request);
UsersTestUtils.verifySignUpAndInResponse(response, freelancer.getEmail(), UserType.FREELANCER);
}

@Test
public void testFreelancerLogin() {
Freelancer freelancer = freelancerRepository.save(UsersTestUtils.generateRandomFreelancer());
LoginRequest request =
LoginRequest.builder()
.withEmail(freelancer.getEmail())
.withPassword(freelancer.getPassword_hash())
.build();
SignUpAndInResponse response =
(SignUpAndInResponse) template.convertSendAndReceive(ServiceQueueNames.USERS, request);
UsersTestUtils.verifySignUpAndInResponse(response, freelancer.getEmail(), UserType.FREELANCER);
}

@Test
public void testClientRegister() {
Client client = UsersTestUtils.generateRandomClient();
ClientRegisterRequest request =
ClientRegisterRequest.builder()
.withEmail(client.getEmail())
.withPassword(client.getPassword_hash())
.withCity(client.getCity())
.withDescription(client.getClient_description())
.withClientName(client.getClient_name())
.withEmployeeCount(client.getEmployee_count())
.withIndustry(client.getIndustry())
.build();
SignUpAndInResponse response =
(SignUpAndInResponse) template.convertSendAndReceive(ServiceQueueNames.USERS, request);
UsersTestUtils.verifySignUpAndInResponse(response, client.getEmail(), UserType.CLIENT);
}

@Test
public void testClientLogin() {
Client client = clientRepository.save(UsersTestUtils.generateRandomClient());
LoginRequest request =
LoginRequest.builder()
.withEmail(client.getEmail())
.withPassword(client.getPassword_hash())
.build();
SignUpAndInResponse response =
(SignUpAndInResponse) template.convertSendAndReceive(ServiceQueueNames.USERS, request);
UsersTestUtils.verifySignUpAndInResponse(response, client.getEmail(), UserType.CLIENT);
}

@Test
void testGetProfileBrief() {
var freelancerObj = freelancerRepository.save(UsersTestUtils.generateRandomFreelancer());
Expand Down
11 changes: 11 additions & 0 deletions services/users/src/test/java/com/workup/users/UsersTestUtils.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.workup.users;

import static org.junit.Assert.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;

import com.workup.shared.commands.users.responses.SignUpAndInResponse;
import com.workup.shared.enums.users.UserType;
import com.workup.shared.views.users.AchievementView;
import com.workup.shared.views.users.EducationView;
import com.workup.shared.views.users.ExperienceView;
Expand Down Expand Up @@ -172,4 +175,12 @@ public static void assertEqualClient(Client client, Client clientObj) {
assertEquals(client.getEmployee_count(), clientObj.getEmployee_count());
assertEquals(client.getPassword_hash(), clientObj.getPassword_hash());
}

public static void verifySignUpAndInResponse(
SignUpAndInResponse response, String email, UserType userType) {
assertNotNull(response);
assertNotNull(response.getUserName());
assertEquals(response.getUserName(), email);
assertEquals(response.getUserType(), userType);
}
}

0 comments on commit 87c3dfd

Please sign in to comment.