Skip to content

Commit

Permalink
Merge pull request #140 from tukcomCD2024/test/#54-backend-news
Browse files Browse the repository at this point in the history
Test/#54 뉴스 관련 테스트코드 구현
  • Loading branch information
yeonjy authored Jun 16, 2024
2 parents 30ec494 + 184ed5e commit d82f42b
Show file tree
Hide file tree
Showing 22 changed files with 642 additions and 203 deletions.
1 change: 1 addition & 0 deletions backend/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
testImplementation 'io.rest-assured:rest-assured:5.1.1'
}

tasks.named('bootBuildImage') {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.rollthedice.backend.domain.news.api;

import com.rollthedice.backend.domain.crawling.NewsCrawlingService;
import com.rollthedice.backend.domain.news.dto.response.NewsDetailResponse;
import com.rollthedice.backend.domain.news.dto.response.NewsResponse;
import com.rollthedice.backend.domain.news.dto.response.ReadNewsResponse;
Expand All @@ -19,7 +18,6 @@
public class NewsController implements NewsApi {
private final NewsService newsService;
private final ReadNewsService readNewsService;
private final NewsCrawlingService crawlingService;

@ResponseStatus(HttpStatus.OK)
@GetMapping("")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import com.rollthedice.backend.global.config.BaseTimeEntity;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.annotations.ColumnDefault;

Expand All @@ -31,9 +28,14 @@ public class News extends BaseTimeEntity {
private long views;

@Builder
public News(String url, String thumbnailUrl) {
public News(Long id, String url, String thumbnailUrl, String title, String content, String category, String postDate) {
this.id = id;
this.url = url;
this.thumbnailUrl = thumbnailUrl;
this.title = title;
this.content = content;
this.category = category;
this.postDate = postDate;
}

public void addNewsBody(String title, String content, String category, String postDate) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ public enum ErrorCode {


private final HttpStatus status;
private final String message;
private final String errorMessage;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,20 @@
import lombok.Getter;
import org.springframework.http.HttpStatus;

import java.util.Collections;

@Getter
public class ErrorResponse {
private HttpStatus status;
private String message;
private final HttpStatus status;
private final String errorMessage;

public ErrorResponse(HttpStatus status, String message) {
public ErrorResponse(HttpStatus status, String errorMessage) {
this.status = status;
this.message = message;
this.errorMessage = errorMessage;
}

public static ErrorResponse create(final ErrorCode errorCode) {
return new ErrorResponse(
errorCode.getStatus(),
errorCode.getMessage()
errorCode.getErrorMessage()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ protected ResponseEntity<ErrorResponse> handleRuntimeException(BusinessException
return ResponseEntity
.status(errorCode.getStatus())
.body(new ErrorResponse(errorCode.getStatus(),
errorCode.getMessage()));
errorCode.getErrorMessage()));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class BusinessException extends RuntimeException{
private final ErrorCode errorCode;

public BusinessException(ErrorCode errorCode) {
super(errorCode.getMessage());
super(errorCode.getErrorMessage());
this.errorCode = errorCode;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public void sendAccessAndRefreshToken(HttpServletResponse response, String email
log.info("Access Token, Refresh Token 헤더 설정 완료");
}

private String createAccessToken(String email) {
public String createAccessToken(String email) {
Date now = new Date();
return JWT.create()
.withSubject(ACCESS_TOKEN_SUBJECT)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package com.rollthedice.backend.domain.news;

import com.rollthedice.backend.domain.member.entity.Member;
import com.rollthedice.backend.domain.news.dto.ContentMessageDto;
import com.rollthedice.backend.domain.news.dto.response.NewsDetailResponse;
import com.rollthedice.backend.domain.news.entity.News;

public class NewsFixture {
public static News NEWS(Member member) {
return News.builder()
.id(1L)
.url("https://n.news.naver.com/article/025/0003367131?sid=104&type=journalists&cds=news_edit")
.thumbnailUrl("https://imgnews.pstatic.net/image/025/2024/06/17/0003367131_001_20240617001153411.jpg?type=w647")
.title("백지에 펜 1자루, 물 1병만 허용…바이든·트럼프 90분 맨몸 토론")
.content("조 바이든 미국 대통령과 도널드 트럼프 전 대통령이 27일 첫 TV 토론에서 맞붙는다. 2020년 10월 이후 처음으로 성사된 두 사람의 공개 토론이다.\n" +
"\n" +
"CNN이 공개한 세부규칙에 따르면 전·현직 대통령의 첫 TV토론은 청중이 없는 스튜디오에서 진행자만을 가운데 두고 단상에 마주 서는 구조로 진행된다. 누가 어느 쪽 단상을 사용할지는 동전 던지기로 결정한다.\n" +
"\n" +
"생방송 토론에서 두 사람에게 지급되는 건 백지와 펜 한 자루, 물 한병이 전부다. 또 90분 토론 내내 서 있어야 한다. 각각 81세와 78세인 바이든·트럼프 두 후보의 입장에서 보면, 이번 토론은 기억력 대결인 동시에 체력전이 될 전망이다.\n" +
"\n" +
"질문에 대한 답변 시간은 2분. 이후 1분간의 반박 시간이 추가된다. 반박에 대한 재반박 시간 역시 1분이다. 시간 제한이 끝나면 마이크가 꺼진다.\n" +
"\n" +
"토론회의 설계와 감독은 2012년 부통령 후보 토론과 2020년 대선 후보 토론에 이어 이번에도 론 클라인 전 백악관 비서실장이 맡았다. 현지 언론에 따르면 바이든은 철저한 자료분석에 이어 모의 토론을 반복하는 ‘스파링형’으로, 트럼프는 ‘임기응변형’으로 토론 준비를 하고 있다.")
.category("세계")
.postDate("2024.06.17")
.build();
}

public static NewsDetailResponse NEWS_DETAIL_RESPONSE() {
return NewsDetailResponse.builder()
.id(1L)
.url("https://n.news.naver.com/article/025/0003367131?sid=104&type=journalists&cds=news_edit")
.thumbnailUrl("https://imgnews.pstatic.net/image/025/2024/06/17/0003367131_001_20240617001153411.jpg?type=w647")
.title("백지에 펜 1자루, 물 1병만 허용…바이든·트럼프 90분 맨몸 토론")
.content("조 바이든 미국 대통령과 도널드 트럼프 전 대통령이 27일 첫 TV 토론에서 맞붙는다. 2020년 10월 이후 처음으로 성사된 두 사람의 공개 토론이다.\n" +
"\n" +
"CNN이 공개한 세부규칙에 따르면 전·현직 대통령의 첫 TV토론은 청중이 없는 스튜디오에서 진행자만을 가운데 두고 단상에 마주 서는 구조로 진행된다. 누가 어느 쪽 단상을 사용할지는 동전 던지기로 결정한다.\n" +
"\n" +
"생방송 토론에서 두 사람에게 지급되는 건 백지와 펜 한 자루, 물 한병이 전부다. 또 90분 토론 내내 서 있어야 한다. 각각 81세와 78세인 바이든·트럼프 두 후보의 입장에서 보면, 이번 토론은 기억력 대결인 동시에 체력전이 될 전망이다.\n" +
"\n" +
"질문에 대한 답변 시간은 2분. 이후 1분간의 반박 시간이 추가된다. 반박에 대한 재반박 시간 역시 1분이다. 시간 제한이 끝나면 마이크가 꺼진다.\n" +
"\n" +
"토론회의 설계와 감독은 2012년 부통령 후보 토론과 2020년 대선 후보 토론에 이어 이번에도 론 클라인 전 백악관 비서실장이 맡았다. 현지 언론에 따르면 바이든은 철저한 자료분석에 이어 모의 토론을 반복하는 ‘스파링형’으로, 트럼프는 ‘임기응변형’으로 토론 준비를 하고 있다.")
.postDate("2024.06.17")
.build();
}

public static ContentMessageDto CONTENT_MESSAGE_DTO() {
return new ContentMessageDto(1L, "롯데하이마트가 매장에서 영업을 담당하는 1400여 명의 직원을 직접 고용한다. 대규모유통업법을 준수함과 동시에 직원의 전문성을 제고하기 위한 차원이다.");
}




}
Loading

0 comments on commit d82f42b

Please sign in to comment.