Skip to content

Commit

Permalink
test: 큐컴버 인수 테스트 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
amaran-th authored and nuyh99 committed Aug 10, 2023
1 parent b268be4 commit fc6551a
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package wooteco.prolog.steps;

import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import org.springframework.http.HttpStatus;
import wooteco.prolog.AcceptanceSteps;
import wooteco.prolog.roadmap.application.dto.RecommendedRequest;

import static org.assertj.core.api.Assertions.assertThat;
import static wooteco.prolog.fixtures.KeywordAcceptanceFixture.KEYWORD_REQUEST;

public class KeywordRecommendedPostStepDefinitions extends AcceptanceSteps {

@Given("{int}번 세션에 {string}라는 키워드를 순서 {int}, 중요도 {int}, 부모 키워드 {long}로 작성하고")
public void 키워드를_부모_키워드와_함께_작성하고(int sessionId, String keywordName, int seq, int importance,
long parentId) {
context.invokeHttpPost(
"/sessions/" + sessionId + "/keywords",
KEYWORD_REQUEST.getSaveChild(keywordName, seq, importance, parentId));
}

@Given("{int}번 키워드에 대해 추천 포스트 {string}를 작성하고")
@When("{int}번 키워드에 대해 추천 포스트 {string}를 작성하면")
public void 추천_포스트를_추가하면(int keywordId, String url) {
context.invokeHttpPost(
"/keywords/"+keywordId+"/recommended-posts",
new RecommendedRequest(url)
);
}

@When("{int}번 키워드에 대한 {int}번 추천 포스트를 {string}로 수정하면")
public void 추천_포스트를_수정하면(int keywordId, int recommendedId, String url) {
context.invokeHttpPut(
"/keywords/"+keywordId+"/recommended-posts/"+recommendedId,
new RecommendedRequest(url));
}

@When("{int}번 키워드에 대한 {int}번 추천 포스트를 삭제하면")
public void 추천_포스트를_삭제하면(int keywordId, int recommendedId) {
context.invokeHttpDelete(
"/keywords/" + keywordId + "/recommended-posts/" + recommendedId
);
}

@Then("추천 포스트가 생성된다")
public void 추천_포스트가_생성된다() {
int statusCode = context.response.statusCode();

assertThat(statusCode).isEqualTo(HttpStatus.CREATED.value());
}

@Then("추천 포스트가 수정된다")
public void 추천_포스트가_수정된다() {
int statusCode = context.response.statusCode();

assertThat(statusCode).isEqualTo(HttpStatus.OK.value());
}

@Then("추천 포스트가 삭제된다")
public void 추천_포스트가_삭제된다() {
int statusCode = context.response.statusCode();

assertThat(statusCode).isEqualTo(HttpStatus.NO_CONTENT.value());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
@api
Feature: 로드맵 키워드 추천 포스트 관련 기능

Background: 사전 작업
Given "2022 백엔드 레벨1" 세션을 생성하고 - 1번 세션
And 1번 세션에 "자바"라는 키워드를 순서 1, 중요도 2로 작성하고

Scenario: 키워드 추천 포스트 생성하기
When 1번 키워드에 대해 추천 포스트 "https://javajavajava"를 작성하면
Then 추천 포스트가 생성된다

Scenario: 키워드 추천 포스트 수정하기
Given 1번 키워드에 대해 추천 포스트 "https://javajavajava"를 작성하고
When 1번 키워드에 대한 1번 추천 포스트를 "https://java2java2"로 수정하면
Then 추천 포스트가 수정된다

Scenario: 키워드 추천 포스트 삭제하기
When 1번 키워드에 대한 1번 추천 포스트를 삭제하면
Then 추천 포스트가 삭제된다

0 comments on commit fc6551a

Please sign in to comment.