Skip to content

Commit c5b1e38

Browse files
committed
Update unit tests
1 parent 9194370 commit c5b1e38

File tree

1 file changed

+61
-12
lines changed

1 file changed

+61
-12
lines changed

server/src/test/java/com/cloud/alert/AlertManagerImplTest.java

Lines changed: 61 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@
2626
import org.apache.cloudstack.utils.mailing.SMTPMailSender;
2727
import org.apache.logging.log4j.Logger;
2828
import org.junit.Assert;
29+
import org.junit.Before;
2930
import org.junit.Test;
3031
import org.junit.runner.RunWith;
32+
import org.mockito.ArgumentCaptor;
3133
import org.mockito.InjectMocks;
3234
import org.mockito.Mock;
3335
import org.mockito.Mockito;
@@ -37,6 +39,12 @@
3739
import javax.mail.MessagingException;
3840
import java.io.UnsupportedEncodingException;
3941

42+
import static org.junit.Assert.assertEquals;
43+
import static org.junit.Assert.assertNotNull;
44+
import static org.junit.Assert.assertNull;
45+
import static org.mockito.ArgumentMatchers.any;
46+
import static org.mockito.Mockito.verify;
47+
4048
@RunWith(MockitoJUnitRunner.class)
4149
public class AlertManagerImplTest {
4250

@@ -45,7 +53,7 @@ public class AlertManagerImplTest {
4553
AlertManagerImpl alertManagerImplMock;
4654

4755
@Mock
48-
AlertDao alertDaoMock;
56+
AlertDao _alertDao;
4957

5058
@Mock
5159
private DataCenterDao _dcDao;
@@ -65,7 +73,16 @@ public class AlertManagerImplTest {
6573
@Mock
6674
SMTPMailSender mailSenderMock;
6775

68-
private void sendMessage (){
76+
private final String[] recipients = new String[]{"[email protected]"};
77+
private final String senderAddress = "[email protected]";
78+
79+
@Before
80+
public void setUp() {
81+
alertManagerImplMock.recipients = recipients;
82+
alertManagerImplMock.senderAddress = senderAddress;
83+
}
84+
85+
private void sendMessage() {
6986
try {
7087
DataCenterVO zone = Mockito.mock(DataCenterVO.class);
7188
Mockito.when(zone.getId()).thenReturn(0L);
@@ -77,46 +94,78 @@ private void sendMessage (){
7794
Mockito.when(cluster.getId()).thenReturn(1L);
7895
Mockito.when(_clusterDao.findById(1L)).thenReturn(cluster);
7996

80-
alertManagerImplMock.sendAlert(AlertManager.AlertType.ALERT_TYPE_CPU, 0, 1l, 1l, "", "");
97+
alertManagerImplMock.sendAlert(AlertManager.AlertType.ALERT_TYPE_CPU, 0, 1L, 1L, "", "");
8198
} catch (UnsupportedEncodingException | MessagingException e) {
8299
Assert.fail();
83100
}
84101
}
85102

86103
@Test
87104
public void sendAlertTestSendMail() {
88-
Mockito.doReturn(null).when(alertDaoMock).getLastAlert(Mockito.anyShort(), Mockito.anyLong(),
105+
Mockito.doReturn(null).when(_alertDao).getLastAlert(Mockito.anyShort(), Mockito.anyLong(),
89106
Mockito.anyLong(), Mockito.anyLong());
90-
Mockito.doReturn(null).when(alertDaoMock).persist(Mockito.any());
91-
alertManagerImplMock.recipients = new String [] {""};
107+
Mockito.doReturn(null).when(_alertDao).persist(any());
108+
alertManagerImplMock.recipients = new String[]{""};
92109

93110
sendMessage();
94111

95-
Mockito.verify(alertManagerImplMock).sendMessage(Mockito.any());
112+
Mockito.verify(alertManagerImplMock).sendMessage(any());
96113
}
97114

98115
@Test
99116
public void sendAlertTestDebugLogging() {
100117
Mockito.doReturn(0).when(alertVOMock).getSentCount();
101-
Mockito.doReturn(alertVOMock).when(alertDaoMock).getLastAlert(Mockito.anyShort(), Mockito.anyLong(),
118+
Mockito.doReturn(alertVOMock).when(_alertDao).getLastAlert(Mockito.anyShort(), Mockito.anyLong(),
102119
Mockito.anyLong(), Mockito.anyLong());
103120

104121
sendMessage();
105122

106123
Mockito.verify(alertManagerImplMock.logger).debug(Mockito.anyString());
107-
Mockito.verify(alertManagerImplMock, Mockito.never()).sendMessage(Mockito.any());
124+
Mockito.verify(alertManagerImplMock, Mockito.never()).sendMessage(any());
108125
}
109126

110127
@Test
111128
public void sendAlertTestWarnLogging() {
112-
Mockito.doReturn(null).when(alertDaoMock).getLastAlert(Mockito.anyShort(), Mockito.anyLong(),
129+
Mockito.doReturn(null).when(_alertDao).getLastAlert(Mockito.anyShort(), Mockito.anyLong(),
113130
Mockito.anyLong(), Mockito.anyLong());
114-
Mockito.doReturn(null).when(alertDaoMock).persist(Mockito.any());
131+
Mockito.doReturn(null).when(_alertDao).persist(Mockito.any());
115132
alertManagerImplMock.recipients = null;
116133

117134
sendMessage();
118135

119136
Mockito.verify(alertManagerImplMock.logger, Mockito.times(2)).warn(Mockito.anyString());
120-
Mockito.verify(alertManagerImplMock, Mockito.never()).sendMessage(Mockito.any());
137+
Mockito.verify(alertManagerImplMock, Mockito.never()).sendMessage(any());
138+
}
139+
140+
141+
@Test
142+
public void testSendAlertWithNullParameters() throws MessagingException, UnsupportedEncodingException {
143+
// Given
144+
String subject = "Test Subject";
145+
String content = "Test Content";
146+
AlertManager.AlertType alertType = AlertManager.AlertType.ALERT_TYPE_MEMORY;
147+
148+
// When
149+
alertManagerImplMock.sendAlert(alertType, null, null, null, subject, content);
150+
151+
// Then
152+
ArgumentCaptor<AlertVO> alertCaptor = ArgumentCaptor.forClass(AlertVO.class);
153+
verify(_alertDao).persist(alertCaptor.capture());
154+
155+
AlertVO capturedAlert = alertCaptor.getValue();
156+
assertNotNull("Captured alert should not be null", capturedAlert);
157+
assertEquals(0L, capturedAlert.getDataCenterId());
158+
assertNull(capturedAlert.getPodId());
159+
assertNull(capturedAlert.getClusterId());
160+
assertEquals(subject, capturedAlert.getSubject());
161+
assertEquals(content, capturedAlert.getContent());
162+
assertEquals(alertType.getType(), capturedAlert.getType());
163+
}
164+
165+
166+
@Test(expected = NullPointerException.class)
167+
public void testSendAlertWithNullAlertType() throws MessagingException, UnsupportedEncodingException {
168+
// When
169+
alertManagerImplMock.sendAlert(null, 0, 1L, 1L, "subject", "content");
121170
}
122171
}

0 commit comments

Comments
 (0)