Skip to content

Commit

Permalink
Merge pull request #225 from PLADI-ALM/test/PDS-195-register-equipment
Browse files Browse the repository at this point in the history
[PDS-195/test] 구매 장비 등록 API 성공 테스트 구현
  • Loading branch information
leeseunghakhello authored Nov 24, 2023
2 parents 523eca7 + 5d4517b commit 1d80725
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.example.pladialmserver.equipment.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Getter;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;

@Getter
@Builder
public class RegisterEquipmentReq {

@Schema(type = "String", description = "이름", example = "맥심커피", required = true)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.example.pladialmserver.equipment.controller;

import org.junit.jupiter.api.Test;

public class EquipmentControllerTest {
@Test
void registerEquipment() {
}

@Test
void searchEquipment() {
}

@Test
void updateEquipment() {
}

@Test
void deleteEquipment() {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package com.example.pladialmserver.equipment.service;

import com.example.pladialmserver.equipment.dto.request.RegisterEquipmentReq;
import com.example.pladialmserver.equipment.repository.EquipmentCategoryRepository;
import com.example.pladialmserver.equipment.repository.EquipmentRepository;
import com.example.pladialmserver.global.utils.JwtUtil;
import com.example.pladialmserver.user.entity.User;
import com.example.pladialmserver.user.repository.user.UserRepository;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import java.util.Optional;

import static com.example.pladialmserver.equipment.service.model.TestEquipmentInfo.setUpRegisterEquipmentInfo;
import static com.example.pladialmserver.user.service.model.TestUserInfo.*;
import static com.example.pladialmserver.user.service.model.TestUserInfo.PASSWORD;
import static org.mockito.Mockito.*;

@ExtendWith(MockitoExtension.class)
public class EquipmentServiceTest {

@Spy
@InjectMocks
private EquipmentService equipmentService;
@Mock
private EquipmentRepository equipmentRepository;
@Mock
private EquipmentCategoryRepository equipmentCategoryRepository;
@Mock
BCryptPasswordEncoder passwordEncoder;

@BeforeEach
void setUp() {
}

@AfterEach
void tearDown() {
}

@Test
@DisplayName("[성공] 구매 비품 추가")
void registerEquipmentSuccess() {
// given
User user = setUpUser(setUpDepartment(), setUpAffiliation(), passwordEncoder.encode(PASSWORD));
RegisterEquipmentReq req = setUpRegisterEquipmentInfo("맥심커피", "10박스", "기타", "S1305", "맥심커피입니다.", "photo/maxim.png");

// when
equipmentService.registerEquipment(req, user);

// verify
verify(equipmentService, times(1)).registerEquipment(any(RegisterEquipmentReq.class), any(User.class));
verify(passwordEncoder, times(1)).encode(any(String.class));
}

@Test
void searchEquipment() {
}

@Test
void updateEquipment() {
}

@Test
void deleteEquipment() {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.pladialmserver.equipment.service.model;

import com.example.pladialmserver.equipment.dto.request.RegisterEquipmentReq;

public class TestEquipmentInfo {

public static RegisterEquipmentReq setUpRegisterEquipmentInfo(String name, String quantity, String category, String location, String description, String imgKey ) {
return RegisterEquipmentReq.builder()
.name(name)
.quantity(quantity)
.category(category)
.location(location)
.description(description)
.imgKey(imgKey)
.build();

}
}

0 comments on commit 1d80725

Please sign in to comment.