Skip to content

Commit

Permalink
test: 알림 도메인 테스트 작성 및 문서화 추가
Browse files Browse the repository at this point in the history
test: 알림 도메인 테스트 작성 및 문서화 추가
  • Loading branch information
hseong3243 committed Sep 25, 2023
2 parents b2fa10d + a5fb1a8 commit a0740f0
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 1 deletion.
56 changes: 55 additions & 1 deletion src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,19 @@ include::{snippets}/find-orders/query-parameters.adoc[]
include::{snippets}/find-orders/http-response.adoc[]
include::{snippets}/find-orders/response-fields.adoc[]

=== 결제 완료된 주문 목록 조회(직원)

==== Request

include::{snippets}/find-payed-orders/http-request.adoc[]
include::{snippets}/find-payed-orders/request-headers.adoc[]
include::{snippets}/find-payed-orders/query-parameters.adoc[]

==== Response

include::{snippets}/find-payed-orders/http-response.adoc[]
include::{snippets}/find-payed-orders/response-fields.adoc[]

=== 주문 생성

==== Request
Expand Down Expand Up @@ -480,11 +493,39 @@ include::{snippets}/pay-fail/response-fields.adoc[]

== 배달(Delivery)

=== 배달 현황 조회
=== 배달 생성

==== Request

include::{snippets}/register-delivery/http-request.adoc[]
include::{snippets}/register-delivery/request-headers.adoc[]
include::{snippets}/register-delivery/path-parameters.adoc[]
include::{snippets}/register-delivery/request-fields.adoc[]


==== Response

include::{snippets}/register-delivery/http-response.adoc[]
include::{snippets}/register-delivery/response-headers.adoc[]

=== 배달 현황 조회(유저)

==== Request

include::{snippets}/find-delivery-by-order/http-request.adoc[]
include::{snippets}/find-delivery-by-order/path-parameters.adoc[]

==== Response

include::{snippets}/find-delivery-by-order/http-response.adoc[]
include::{snippets}/find-delivery-by-order/response-fields.adoc[]

=== 배달 상세 조회(라이더, 직원)

==== Request

include::{snippets}/find-delivery/http-request.adoc[]
include::{snippets}/find-delivery/request-headers.adoc[]
include::{snippets}/find-delivery/path-parameters.adoc[]

==== Response
Expand Down Expand Up @@ -549,3 +590,16 @@ include::{snippets}/find-rider-deliveries/query-parameters.adoc[]

include::{snippets}/find-rider-deliveries/http-response.adoc[]
include::{snippets}/find-rider-deliveries/response-fields.adoc[]

== 알림(Notification)

=== 알림 연결

==== Request

include::{snippets}/connect-notification/http-request.adoc[]
include::{snippets}/connect-notification/request-headers.adoc[]

==== Response

include::{snippets}/connect-notification/http-response.adoc[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.prgrms.nabmart.domain.notification.controller;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.BDDMockito.given;
import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName;
import static org.springframework.restdocs.headers.HeaderDocumentation.requestHeaders;
import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import com.prgrms.nabmart.base.BaseControllerTest;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

class NotificationControllerTest extends BaseControllerTest {

@Nested
@DisplayName("sseConnection API 호출 시")
class ConnectNotificationTest {

@Test
@DisplayName("성공")
void connectNotification() throws Exception {
//given
SseEmitter emitter = new SseEmitter();

given(notificationService.connectNotification(any())).willReturn(emitter);

//when
ResultActions resultActions = mockMvc.perform(get("/api/v1/notifications/connect")
.header(AUTHORIZATION, accessToken));

//then
resultActions.andExpect(status().isOk())
.andDo(restDocs.document(
requestHeaders(
headerWithName(AUTHORIZATION).description("액세스 토큰"),
headerWithName("Last-Event-ID").description("마지막 이벤트 ID").optional()
)
));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.prgrms.nabmart.domain.notification.service;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.BDDMockito.then;

import com.prgrms.nabmart.domain.notification.controller.request.ConnectNotificationCommand;
import com.prgrms.nabmart.domain.notification.repository.EmitterRepository;
import com.prgrms.nabmart.domain.user.repository.UserRepository;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

@ExtendWith(MockitoExtension.class)
class NotificationServiceTest {

@InjectMocks
NotificationService notificationService;

@Mock
UserRepository userRepository;

@Mock
EmitterRepository emitterRepository;

@Nested
@DisplayName("connectNotification 메서드 실행 시")
class ConnectNotificationTest {

@Test
@DisplayName("성공")
void success() {
//given
long userId = 1L;
ConnectNotificationCommand connectNotificationCommand
= ConnectNotificationCommand.of(userId, "");

//when
SseEmitter emitter = notificationService.connectNotification(
connectNotificationCommand);

//then
then(emitterRepository).should().save(any(), any());
}
}
}

0 comments on commit a0740f0

Please sign in to comment.