forked from GDSC-PKNU-Official/GDSC-PKNU-back-21-22
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- controller, repository 단위 테스트 작성 - major.java 디렉토리 변경(member -> major) Resolves: GDSC-PKNU-Official#10
- Loading branch information
Showing
8 changed files
with
157 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,3 +36,4 @@ out/ | |
### VS Code ### | ||
.vscode/ | ||
src/main/resources/application.properties | ||
src/main/resources/application.yml |
15 changes: 15 additions & 0 deletions
15
src/main/java/com/gdsc/pknu/backend/controller/user/MajorListResult.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.gdsc.pknu.backend.controller.user; | ||
|
||
import java.util.List; | ||
import com.gdsc.pknu.backend.domain.major.Major; | ||
import lombok.Getter; | ||
|
||
@Getter | ||
public class MajorListResult { | ||
|
||
private List<Major> majorList; | ||
|
||
public MajorListResult(List<Major> majorList) { | ||
this.majorList = majorList; | ||
} | ||
} |
26 changes: 26 additions & 0 deletions
26
src/main/java/com/gdsc/pknu/backend/controller/user/MajorRestController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package com.gdsc.pknu.backend.controller.user; | ||
|
||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
import com.gdsc.pknu.backend.controller.ApiRes; | ||
import com.gdsc.pknu.backend.service.MajorService; | ||
|
||
|
||
@RestController | ||
@RequestMapping("api/major") | ||
public class MajorRestController { | ||
|
||
@Autowired | ||
private final MajorService majorService; | ||
|
||
public MajorRestController(MajorService majorService) { | ||
this.majorService = majorService; | ||
} | ||
|
||
@GetMapping() | ||
public ApiRes<MajorListResult> getMajorList() { | ||
return ApiRes.SUCCESS(new MajorListResult(majorService.getMajorList())); | ||
} | ||
} |
13 changes: 10 additions & 3 deletions
13
...dsc/pknu/backend/domain/member/Major.java → ...gdsc/pknu/backend/domain/major/Major.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,24 @@ | ||
package com.gdsc.pknu.backend.domain.member; | ||
|
||
package com.gdsc.pknu.backend.domain.major; | ||
|
||
import javax.persistence.Column; | ||
import javax.persistence.Entity; | ||
import javax.persistence.GeneratedValue; | ||
import javax.persistence.Id; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.*; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Entity | ||
@Getter | ||
@Builder | ||
@NoArgsConstructor(access = AccessLevel.PROTECTED) | ||
@AllArgsConstructor | ||
|
||
public class Major { | ||
@Id | ||
@GeneratedValue | ||
@Column(name = "major_id") | ||
private Long id; | ||
|
||
private String majorName; | ||
} |
8 changes: 8 additions & 0 deletions
8
src/main/java/com/gdsc/pknu/backend/domain/major/MajorRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.gdsc.pknu.backend.domain.major; | ||
|
||
import java.util.List; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
public interface MajorRepository extends JpaRepository<Major, Long> { | ||
List<Major> findAll(); | ||
} |
22 changes: 22 additions & 0 deletions
22
src/main/java/com/gdsc/pknu/backend/service/MajorService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package com.gdsc.pknu.backend.service; | ||
|
||
import java.util.List; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.stereotype.Service; | ||
import com.gdsc.pknu.backend.domain.major.Major; | ||
import com.gdsc.pknu.backend.domain.major.MajorRepository; | ||
|
||
@Service | ||
public class MajorService { | ||
|
||
@Autowired | ||
private final MajorRepository majorRepository; | ||
|
||
public MajorService(MajorRepository majorRepository) { | ||
this.majorRepository = majorRepository; | ||
} | ||
|
||
public List<Major> getMajorList() { | ||
return majorRepository.findAll(); | ||
} | ||
} |
47 changes: 47 additions & 0 deletions
47
src/test/java/com/gdsc/pknu/backend/controller/MajorRestControllerTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
package com.gdsc.pknu.backend.controller; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
import org.junit.jupiter.api.DisplayName; | ||
import org.junit.jupiter.api.Test; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; | ||
import org.springframework.boot.test.mock.mockito.MockBean; | ||
import org.springframework.test.web.servlet.MockMvc; | ||
import com.gdsc.pknu.backend.controller.user.MajorRestController; | ||
import com.gdsc.pknu.backend.domain.major.Major; | ||
import com.gdsc.pknu.backend.service.MajorService; | ||
import static org.mockito.Mockito.*; | ||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; | ||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; | ||
|
||
@WebMvcTest(MajorRestController.class) | ||
public class MajorRestControllerTest { | ||
|
||
@Autowired | ||
MockMvc mockMvc; | ||
|
||
@MockBean | ||
MajorService majorService; | ||
|
||
@Test | ||
@DisplayName("학과 목록 불러오기 테스트") | ||
void get_major_list() throws Exception { | ||
|
||
// 서비스 리턴 값 지정 | ||
List<Major> majors = new ArrayList<>(); | ||
majors.add(Major.builder() | ||
.id(1L) | ||
.majorName("기린공학과").build()); | ||
majors.add(Major.builder() | ||
.id(2L) | ||
.majorName("향유고래어학과").build()); | ||
|
||
when(majorService.getMajorList()).thenReturn(majors); | ||
|
||
mockMvc.perform(get("/api/major")) | ||
.andExpect(status().isOk()) | ||
.andExpect(jsonPath("$.response.majorList[1].majorName").value("향유고래어학과")); | ||
} | ||
|
||
} |
28 changes: 28 additions & 0 deletions
28
src/test/java/com/gdsc/pknu/backend/domain/major/MajorRepositoryTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package com.gdsc.pknu.backend.domain.major; | ||
|
||
import java.util.List; | ||
import org.junit.jupiter.api.DisplayName; | ||
import org.junit.jupiter.api.Test; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; | ||
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; | ||
|
||
@DataJpaTest | ||
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) | ||
class MajorRepositoryTest{ | ||
|
||
@Autowired | ||
private MajorRepository majorRepository; | ||
|
||
@Test | ||
@DisplayName("학과 정보 리스트 불러오기") | ||
void get_major_list(){ | ||
// given | ||
|
||
// when | ||
List<Major> majors = majorRepository.findAll(); | ||
// then | ||
assert(majors.size() == 79); | ||
assert(majors.get(78).getMajorName().equals("공공안전경찰학과")); | ||
} | ||
} |