Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
package com.rentify.rentify_api.category.dto;

import lombok.Data;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Data
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class CategoryInfo {

private Long id;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,12 @@ public class CategoryService {
public List<CategoryInfo> getCategory() {
List<Category> categories = categoryRepository.findAll();


return categories.stream()
.map(category -> {
CategoryInfo response = new CategoryInfo();
response.setId(category.getId());
response.setName(category.getName());
return response;
})
.map(category -> CategoryInfo.builder()
.id(category.getId())
.name(category.getName())
.build())
.collect(Collectors.toList());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,16 @@
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import java.util.List;
import lombok.Data;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class PostFormRequest {

@NotNull(message = "Category ID is required")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@

import com.rentify.rentify_api.rental.entity.ReceiveMethod;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.LocalDate;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;

@Getter
@NoArgsConstructor
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class RentalRequest {

@NotNull(message = "게시글 ID는 필수입니다.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class CreateUserRequest {

@NotBlank
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
package com.rentify.rentify_api.user.dto;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class LoginRequest {

private String email;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class SendVerificationCodeRequest {

@NotBlank @Email
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class VerifyEmailRequest {

@NotBlank @Email
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ void save_image_success() {
List<Image> savedImages = captor.getValue();
assertThat(savedImages).hasSize(2);

Image file1 = savedImages.get(0);
Image file1 = savedImages.getFirst();
assertThat(file1.getUrl()).isEqualTo("http://test.com:8080/images/test1.png");
assertThat(file1.getFilename()).isEqualTo("test1.png");
assertThat(file1.getOrder()).isEqualTo((short) 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,32 +66,30 @@ class PostServiceTest {

private UUID idempotencyKey;
private Long userId;
private PostFormRequest request;

@BeforeEach
void setUp() {
idempotencyKey = UUID.randomUUID();
userId = 1L;
request = new PostFormRequest();
}

@Test
@DisplayName("게시글 생성 성공")
void create_post_success() {
// given
request.setCategoryId(1L);
request.setTitle("테스트 제목");
request.setDescription("테스트 내용");
request.setPricePerDay(1000);
request.setMaxRentalDays(10);
request.setIsParcel(true);
request.setIsMeetup(true);
request.setImageUrls(
List.of(
PostFormRequest request = PostFormRequest.builder()
.categoryId(1L)
.title("테스트 제목")
.description("테스트 내용")
.pricePerDay(1000)
.maxRentalDays(10)
.isParcel(true)
.isMeetup(true)
.imageUrls(List.of(
"http://test.com:8080/images/test1.png",
"http//test.com:8080/images/test2.jpg"
)
);
))
.build();

User user = User.builder()
.id(userId)
Expand Down Expand Up @@ -138,6 +136,8 @@ void create_post_idempotency_success() {
.responseBody(responseBody)
.build();

PostFormRequest request = PostFormRequest.builder().build();

given(idempotencyKeyRepository.findById(idempotencyKey)).willReturn(Optional.of(existKey));

// when
Expand All @@ -162,6 +162,8 @@ void create_post_idempotency_pending() {
.status(IdempotencyStatus.PENDING)
.build();

PostFormRequest request = PostFormRequest.builder().build();

given(idempotencyKeyRepository.findById(idempotencyKey)).willReturn(
Optional.of(pendingKey));

Expand All @@ -179,6 +181,7 @@ void create_post_idempotency_pending() {
void create_post_user_notfound() {
// given
Long notFoundUserId = Long.MAX_VALUE;
PostFormRequest request = PostFormRequest.builder().build();

given(idempotencyKeyRepository.findById(idempotencyKey)).willReturn(Optional.empty());
given(idempotencyKeyRepository.saveAndFlush(any())).willAnswer(
Expand All @@ -200,6 +203,8 @@ void create_post_user_notfound() {
@DisplayName("존재하지 않는 카테고리 오류")
void create_post_category_notfound() {
// given
PostFormRequest request = PostFormRequest.builder()
.build();
given(idempotencyKeyRepository.findById(idempotencyKey)).willReturn(Optional.empty());
given(idempotencyKeyRepository.saveAndFlush(any())).willAnswer(
invocation -> invocation.getArgument(0));
Expand Down Expand Up @@ -306,19 +311,23 @@ void update_post_success() {
.images(new ArrayList<>())
.build();

PostFormRequest request = PostFormRequest.builder()
.title("수정 테스트 제목")
.description("수정 테스트 내용")
.pricePerDay(5000)
.maxRentalDays(90)
.isParcel(true)
.isMeetup(false)
.imageUrls(List.of(
"http://new-image.com/new.jpg"
))
.build();

Category mockCategory = Category.builder()
.id(request.getCategoryId())
.name("테스트 카테고리")
.build();

request.setTitle("수정 테스트 제목");
request.setDescription("수정 테스트 내용");
request.setPricePerDay(5000);
request.setMaxRentalDays(90);
request.setIsParcel(true);
request.setIsMeetup(false);
request.setImageUrls(List.of("http://new-image.com/new.jpg"));

given(postRepository.findById(postId)).willReturn(Optional.of(mockPost));
given(categoryRepository.findById(request.getCategoryId()))
.willReturn(Optional.of(mockCategory));
Expand All @@ -343,6 +352,7 @@ void update_post_success() {
void not_found_post() {
// given
Long invalidPostId = 10L;
PostFormRequest request = PostFormRequest.builder().build();

given(postRepository.findById(invalidPostId)).willReturn(Optional.empty());

Expand All @@ -366,6 +376,8 @@ void unauthorized_update_post_request() {
.user(mockUser)
.build();

PostFormRequest request = PostFormRequest.builder().build();

given(postRepository.findById(postId)).willReturn(Optional.of(mockPost));

// when & then
Expand Down Expand Up @@ -398,7 +410,7 @@ void get_posts_success() {

// then
assertThat(result.getTotalElements()).isEqualTo(1);
assertThat(result.getContent().get(0).getTitle()).isEqualTo("검색된 게시글");
assertThat(result.getContent().getFirst().getTitle()).isEqualTo("검색된 게시글");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ void signup_concurrency_test() throws InterruptedException {
ExecutorService executorService = Executors.newFixedThreadPool(threadCount);
CountDownLatch latch = new CountDownLatch(threadCount);
UUID idempotencyKey = UUID.randomUUID();
CreateUserRequest request = new CreateUserRequest();

request.setEmail("test-" + UUID.randomUUID() + "@test.com");
request.setName("테스트유저");
request.setPassword("password1234");
CreateUserRequest request = CreateUserRequest.builder()
.email("test-" + UUID.randomUUID() + "@test.com")
.name("테스트유저")
.password("password1234")
.build();

AtomicInteger successCount = new AtomicInteger();
AtomicInteger idempotencyFailCount = new AtomicInteger();
Expand Down
Loading