Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,10 @@ public OrganizationDocumentResponse create(OrganizationDocumentCreateRequest org
}
CrewDocument crewDocument = getCrewDocument(organizationDocumentCreateRequest.crewDocumentUuid());
OrganizationDocument organizationDocument = organizationDocumentCreateRequest.toOrganizationDocument();
organizationDocumentRepository.save(organizationDocument);
documentOrganizationLinkService.link(crewDocument, organizationDocument);
return new OrganizationDocumentResponse(organizationDocument);
OrganizationDocument savedOrganizationDocument = organizationDocumentRepository.save(organizationDocument);
historyService.save(savedOrganizationDocument);
documentOrganizationLinkService.link(crewDocument, savedOrganizationDocument);
return new OrganizationDocumentResponse(savedOrganizationDocument);
}

public OrganizationDocumentResponse update(OrganizationDocumentUpdateRequest organizationDocumentUpdateRequest) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import static org.assertj.core.api.SoftAssertions.assertSoftly;
import static org.junit.jupiter.api.Assertions.assertThrows;

import com.wooteco.wiki.document.domain.CrewDocument;
import com.wooteco.wiki.document.fixture.DocumentFixture;
import com.wooteco.wiki.document.repository.CrewDocumentRepository;
import com.wooteco.wiki.global.exception.ErrorCode;
import com.wooteco.wiki.global.exception.WikiException;
import com.wooteco.wiki.history.domain.History;
Expand All @@ -11,6 +14,7 @@
import com.wooteco.wiki.organizationdocument.dto.request.OrganizationDocumentCreateRequest;
import com.wooteco.wiki.organizationdocument.dto.request.OrganizationDocumentUpdateRequest;
import com.wooteco.wiki.organizationdocument.dto.response.OrganizationDocumentAndEventResponse;
import com.wooteco.wiki.organizationdocument.dto.response.OrganizationDocumentResponse;
import com.wooteco.wiki.organizationdocument.fixture.OrganizationDocumentFixture;
import com.wooteco.wiki.organizationdocument.repository.OrganizationDocumentRepository;
import com.wooteco.wiki.organizationevent.domain.OrganizationEvent;
Expand Down Expand Up @@ -44,6 +48,9 @@ class OrganizationCrewDocumentServiceTest {
@Autowired
private HistoryRepository historyRepository;

@Autowired
private CrewDocumentRepository crewDocumentRepository;

@DisplayName("조직 문서를 수정할 때")
@Nested
class Update {
Expand Down Expand Up @@ -144,6 +151,36 @@ void create_success_byValidData() {
Assertions.assertThat(ex.getErrorCode()).isEqualTo(ErrorCode.DOCUMENT_DUPLICATE);
}

@DisplayName("첫 번째 로그가 저장된다.")
@Test
void create_success_savesFirstHistory() {
// given
CrewDocument crewDocument = DocumentFixture.createDefaultCrewDocument();
CrewDocument savedCrewDocument = crewDocumentRepository.save(crewDocument);

OrganizationDocumentCreateRequest organizationDocumentCreateRequest = new OrganizationDocumentCreateRequest(
"newTitle", "newContents", "newWriter", 99L, savedCrewDocument.getUuid(), UUID.randomUUID());

// when
OrganizationDocumentResponse response = organizationDocumentService.create(organizationDocumentCreateRequest);
OrganizationDocument savedOrganizationDocument = organizationDocumentRepository.findByUuid(
response.organizationDocumentUuid()).orElseThrow();

// then
Page<History> histories = historyRepository.findAllByDocumentId(savedOrganizationDocument.getId(),
Pageable.ofSize(1));

assertSoftly(softly -> {
softly.assertThat(histories.hasContent()).isTrue();
History first = histories.getContent().get(0);
softly.assertThat(first.getVersion()).isEqualTo(1L);
softly.assertThat(first.getTitle()).isEqualTo("newTitle");
softly.assertThat(first.getContents()).isEqualTo("newContents");
softly.assertThat(first.getWriter()).isEqualTo("newWriter");
softly.assertThat(first.getDocumentBytes()).isEqualTo(99L);
});
}

// @DisplayName("존재하지 않는 특정 문서의 Uuid로 요청한다면 예외가 발생한다 : DOCUMENT_NOT_FOUND")
// @Test
// void addOrganizationDocument_error_byNonExistingDocumentUuid() {
Expand Down
Loading