1775192c52
Release package / release (push) Failing after 1m26s
Co-authored-by: TakahashiNg <83152264+TakahashiNguyen@users.noreply.github.com> Reviewed-on: #33
159 lines
3.5 KiB
Java
159 lines
3.5 KiB
Java
package com.drinkool.services;
|
|
|
|
import static io.restassured.RestAssured.*;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
import com.drinkool.*;
|
|
import com.drinkool.dtos.*;
|
|
import com.drinkool.entities.CustomerEntity;
|
|
|
|
import io.quarkus.test.junit.QuarkusTest;
|
|
import io.restassured.http.ContentType;
|
|
import jakarta.inject.Inject;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
@QuarkusTest
|
|
public class CustomerServiceTest {
|
|
|
|
@Inject
|
|
OtpService otpService;
|
|
|
|
@Test
|
|
void testSignup() {
|
|
String phone = Utils.generateRandomPhone();
|
|
Signup input = new Signup();
|
|
input.name = "Test User";
|
|
input.phone = phone;
|
|
input.password = "password123";
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(input)
|
|
.when()
|
|
.post(Role.Customer + Url.Signup)
|
|
.then()
|
|
.statusCode(201);
|
|
|
|
// Kiểm tra database: Phải tìm thấy 1 user với số điện thoại này
|
|
assertEquals(1, CustomerEntity.find("phone", phone).count());
|
|
}
|
|
|
|
@Test
|
|
void testQuickSignup() {
|
|
String phone = Utils.generateRandomPhone();
|
|
QuickSignup input = new QuickSignup();
|
|
input.phone = phone;
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(input)
|
|
.when()
|
|
.post(Role.Customer + Url.QuickSignup)
|
|
.then()
|
|
.statusCode(201);
|
|
|
|
assertEquals(1, CustomerEntity.find("phone", phone).count());
|
|
}
|
|
|
|
@Test
|
|
void testLoginSuccess() {
|
|
// BƯỚC 1: Tạo user trước bằng signup
|
|
String phone = Utils.generateRandomPhone();
|
|
Signup signupData = new Signup();
|
|
signupData.name = "Login User";
|
|
signupData.phone = phone;
|
|
signupData.password = "secure_pass";
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(signupData)
|
|
.post(Role.Customer + Url.Signup)
|
|
.then()
|
|
.statusCode(201);
|
|
|
|
// BƯỚC 2: Thử đăng nhập
|
|
Login loginInput = new Login();
|
|
loginInput.phone = phone;
|
|
loginInput.password = "secure_pass";
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(loginInput)
|
|
.when()
|
|
.post(Role.Customer + Url.Login)
|
|
.then()
|
|
.statusCode(202);
|
|
}
|
|
|
|
@Test
|
|
void testLoginFailWrongPassword() {
|
|
String phone = Utils.generateRandomPhone();
|
|
Signup signupData = new Signup();
|
|
signupData.name = "Wrong Pass User";
|
|
signupData.phone = phone;
|
|
signupData.password = "correct_password";
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(signupData)
|
|
.post(Role.Customer + Url.Signup)
|
|
.then()
|
|
.statusCode(201);
|
|
|
|
Login loginInput = new Login();
|
|
loginInput.phone = phone;
|
|
loginInput.password = "wrong_password";
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(loginInput)
|
|
.when()
|
|
.post(Role.Customer + Url.Login)
|
|
.then()
|
|
.statusCode(400); // BadRequestException
|
|
}
|
|
|
|
@Test
|
|
public void testQuickLogin_Success() {
|
|
String phone = Utils.generateRandomPhone();
|
|
|
|
QuickSignup input = new QuickSignup();
|
|
input.phone = phone;
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(input)
|
|
.when()
|
|
.post(Role.Customer + Url.QuickSignup)
|
|
.then();
|
|
|
|
QuickLogin payload = new QuickLogin();
|
|
payload.phone = phone;
|
|
payload.otp = otpService.generateAndSaveOtp(phone);
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(payload)
|
|
.when()
|
|
.post(Role.Customer + Url.QuickLogin)
|
|
.then()
|
|
.statusCode(202);
|
|
}
|
|
|
|
@Test
|
|
void testQuickLoginFailInvalidOtp() {
|
|
String phone = Utils.generateRandomPhone();
|
|
QuickLogin input = new QuickLogin();
|
|
input.phone = phone;
|
|
input.otp = "000000"; // Giả sử mã này luôn sai vì chưa được tạo
|
|
|
|
given()
|
|
.contentType(ContentType.JSON)
|
|
.body(input)
|
|
.when()
|
|
.post(Role.Customer + Url.QuickLogin)
|
|
.then()
|
|
.statusCode(401);
|
|
}
|
|
}
|