11package io .crops .warmletter .domain .badword .service ;
22
33import io .crops .warmletter .config .TestConfig ;
4+ import static org .junit .jupiter .api .Assertions .assertThrows ;
45import io .crops .warmletter .domain .badword .dto .request .CreateBadWordRequest ;
56import io .crops .warmletter .domain .badword .dto .request .UpdateBadWordRequest ;
67import io .crops .warmletter .domain .badword .dto .request .UpdateBadWordStatusRequest ;
@@ -283,4 +284,31 @@ void updateBadWord_success_withoutRedisUpdate() {
283284 assertEquals ("newWord" , response .getWord ());
284285 }
285286
287+ @ Test
288+ @ DisplayName ("deleteBadWord - 성공 케이스: 존재하는 금칙어 삭제" )
289+ void deleteBadWord_success () {
290+ // given
291+ Long badWordId = 1L ;
292+ BadWord badWord = new BadWord ();
293+ // 필요한 경우 badWord에 속성을 추가할 수 있습니다.
294+ when (badWordRepository .findById (badWordId )).thenReturn (Optional .of (badWord ));
295+
296+ // when
297+ badWordService .deleteBadWord (badWordId );
298+
299+ // then: 리포지토리에서 delete() 메서드 호출 및 Redis에서 삭제 호출 검증
300+ verify (badWordRepository ).delete (badWord );
301+ verify (hashOperations ).delete (BAD_WORD_KEY , badWordId .toString ());
302+ }
303+
304+ @ Test
305+ @ DisplayName ("deleteBadWord - 실패 케이스: 존재하지 않는 금칙어 삭제 시 예외 발생" )
306+ void deleteBadWord_notFound () {
307+ // given
308+ Long badWordId = 2L ;
309+ when (badWordRepository .findById (badWordId )).thenReturn (Optional .empty ());
310+
311+ // when & then: BadWordNotFoundException 발생 검증
312+ assertThrows (BadWordNotFoundException .class , () -> badWordService .deleteBadWord (badWordId ));
313+ }
286314}
0 commit comments