2121import static org .junit .jupiter .api .Assertions .assertThrows ;
2222import static org .mockito .ArgumentMatchers .any ;
2323import static org .mockito .ArgumentMatchers .eq ;
24+ import static org .mockito .Mockito .doThrow ;
2425import static org .mockito .Mockito .never ;
2526import static org .mockito .Mockito .verify ;
2627import static org .mockito .Mockito .when ;
2728
29+ import jakarta .persistence .EntityManager ;
30+ import jakarta .persistence .PersistenceException ;
31+
2832import org .apache .hertzbeat .base .dao .GeneralConfigDao ;
2933import org .apache .hertzbeat .common .entity .dto .MailServerConfig ;
3034import org .apache .hertzbeat .common .entity .dto .sms .SmsConfig ;
3337import org .apache .hertzbeat .manager .pojo .dto .SmsServerConfigRequest ;
3438import org .apache .hertzbeat .manager .service .impl .MessageServerConfigServiceImpl ;
3539import org .apache .hertzbeat .common .util .JsonUtil ;
36- import org .springframework .dao .DataIntegrityViolationException ;
3740import org .junit .jupiter .api .BeforeEach ;
3841import org .junit .jupiter .api .Test ;
3942import org .junit .jupiter .api .extension .ExtendWith ;
@@ -49,11 +52,13 @@ class MessageServerConfigServiceTest {
4952 private MessageServerConfigMapper mapper ;
5053 @ Mock
5154 private GeneralConfigDao generalConfigDao ;
55+ @ Mock
56+ private EntityManager entityManager ;
5257 private MessageServerConfigServiceImpl service ;
5358
5459 @ BeforeEach
5560 void setUp () {
56- service = new MessageServerConfigServiceImpl (configService , mapper , generalConfigDao );
61+ service = new MessageServerConfigServiceImpl (configService , mapper , generalConfigDao , entityManager );
5762 }
5863
5964 @ Test
@@ -115,8 +120,7 @@ void firstCreateUsesMissingRevisionAndUniqueKeyLoserIsTheSameStableConflict() {
115120 MailServerConfig merged = new MailServerConfig ();
116121 when (generalConfigDao .findByType ("email" )).thenReturn (null );
117122 when (mapper .toEmailConfig (request , null )).thenReturn (merged );
118- when (generalConfigDao .saveAndFlush (any ()))
119- .thenThrow (new DataIntegrityViolationException ("secret-db-exception" ));
123+ doThrow (new PersistenceException ("secret-db-exception" )).when (entityManager ).flush ();
120124
121125 MessageServerConfigConflictException conflict = assertThrows (
122126 MessageServerConfigConflictException .class , () -> service .saveEmailConfig (request ));
0 commit comments