Skip to content

Commit dfb1d1d

Browse files
committed
Fix: Mongo 저장 실패 시 update 롤백 - when절 RecoverableDataAccessException으로 수정
1 parent 3bc77c4 commit dfb1d1d

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/test/java/io/ejangs/docsa/domain/save/app/SaveServiceIntegrationTest.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static org.mockito.ArgumentMatchers.any;
66
import static org.mockito.Mockito.when;
77

8+
import com.mongodb.DuplicateKeyException;
89
import io.ejangs.docsa.domain.branch.dao.mysql.BranchRepository;
910
import io.ejangs.docsa.domain.branch.entity.Branch;
1011
import io.ejangs.docsa.domain.commit.dao.mysql.CommitRepository;
@@ -34,6 +35,8 @@
3435
import org.junit.jupiter.api.Test;
3536
import org.springframework.beans.factory.annotation.Autowired;
3637
import org.springframework.boot.test.context.SpringBootTest;
38+
import org.springframework.dao.DataAccessException;
39+
import org.springframework.dao.RecoverableDataAccessException;
3740
import org.springframework.test.context.ActiveProfiles;
3841
import org.springframework.test.context.bean.override.mockito.MockitoBean;
3942
import org.springframework.transaction.annotation.Propagation;
@@ -62,9 +65,6 @@ class SaveServiceIntegrationTest {
6265
@Autowired
6366
private CommitRepository commitRepository;
6467

65-
@Autowired
66-
private EntityManager em;
67-
6868
@MockitoBean
6969
private SaveContentRepository saveContentRepository;
7070

@@ -123,15 +123,12 @@ void updateSave_fails_whenMongoSaveFails_thenMysqlDeleted() throws Exception {
123123
Optional.of(saveContent));
124124

125125
when(saveContentRepository.save(any()))
126-
.thenThrow(new CustomException(DatabaseErrorCode.DATABASE_ERROR));
126+
.thenThrow(new RecoverableDataAccessException("mongo write failed"));
127127

128128
assertThatThrownBy(() -> saveService.updateSave(dto, request))
129129
.isInstanceOf(CustomException.class)
130130
.hasMessageContaining(DatabaseErrorCode.DATABASE_ERROR.getMessage());
131131

132-
// then
133-
em.clear();
134-
135132
Save after = saveRepository.findById(save.getId()).orElse(null);
136133
assertThat(after).isNotNull();
137134
assertThat(after.getUpdatedAt()).isEqualTo(beforeUpdatedAt);

0 commit comments

Comments
 (0)