You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/11/28 20:40:09 UTC
[08/12] ambari git commit: AMBARI-22458 - SNMP Trap should contain
sysuptime field filled (unit test fixes) (jonathanhurley)
AMBARI-22458 - SNMP Trap should contain sysuptime field filled (unit test fixes) (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/473abc32
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/473abc32
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/473abc32
Branch: refs/heads/branch-feature-AMBARI-22457
Commit: 473abc324ff04b2cda50ccd26f85a6fbfd7e2f51
Parents: 3a68e51
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Tue Nov 28 12:23:31 2017 -0500
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Tue Nov 28 12:24:03 2017 -0500
----------------------------------------------------------------------
.../dispatchers/AmbariSNMPDispatcherTest.java | 97 +++++++++++---------
.../AlertNoticeDispatchServiceTest.java | 63 ++++++++++---
2 files changed, 106 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/473abc32/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java b/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
index b1fee2b..4ac1681 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
@@ -18,11 +18,32 @@
package org.apache.ambari.server.notifications.dispatchers;
-import org.apache.ambari.server.notifications.TargetConfigurationResult;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.apache.ambari.server.notifications.DispatchCallback;
import org.apache.ambari.server.notifications.Notification;
import org.apache.ambari.server.notifications.NotificationDispatcher;
import org.apache.ambari.server.notifications.Recipient;
+import org.apache.ambari.server.notifications.TargetConfigurationResult;
import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
import org.apache.ambari.server.orm.entities.AlertHistoryEntity;
import org.apache.ambari.server.state.AlertState;
@@ -39,16 +60,6 @@ import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.VariableBinding;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
-
public class AmbariSNMPDispatcherTest {
private static final int DEFAULT_SNMP_PORT = 31444;
@@ -81,7 +92,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = mock(AlertNotification.class);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "3");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "4");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
@@ -100,7 +111,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = mock(AlertNotification.class);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- notification.DispatchProperties = new HashMap<String, String>();
+ notification.DispatchProperties = new HashMap<>();
dispatcher.dispatch(notification);
verify(notification.Callback).onFailure(notification.CallbackIds);
verify(notification.Callback, never()).onSuccess(notification.CallbackIds);
@@ -112,7 +123,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = getAlertNotification(true);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "3");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "4");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
@@ -128,12 +139,12 @@ public class AmbariSNMPDispatcherTest {
Notification notification = getAlertNotification(true);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "3");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "4");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
notification.DispatchProperties = properties;
- notification.Recipients = new ArrayList<Recipient>();
+ notification.Recipients = new ArrayList<>();
dispatcher.dispatch(notification);
verify(notification.Callback).onFailure(notification.CallbackIds);
verify(notification.Callback, never()).onSuccess(notification.CallbackIds);
@@ -145,7 +156,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = mock(AlertNotification.class);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "3");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "4");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
@@ -163,7 +174,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = mock(AlertNotification.class);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "3");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "4");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv11");
@@ -181,7 +192,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = mock(AlertNotification.class);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "3");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "4");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
@@ -200,7 +211,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = mock(AlertNotification.class);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "3");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "4");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv2c");
@@ -218,7 +229,7 @@ public class AmbariSNMPDispatcherTest {
Notification notification = getAlertNotification(true);
notification.Callback = mock(DispatchCallback.class);
notification.CallbackIds = mock(List.class);
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "public");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
@@ -242,11 +253,11 @@ public class AmbariSNMPDispatcherTest {
Notification notification = getAlertNotification(true);
PDU pdu = dispatcher.prepareTrap(notification, snmpVersion);
assertEquals(PDU.V1TRAP, pdu.getType());
- Map<String, VariableBinding> variableBindings = new HashMap<String, VariableBinding>();
+ Map<String, VariableBinding> variableBindings = new HashMap<>();
for (VariableBinding variableBinding : pdu.toArray()) {
variableBindings.put(variableBinding.getOid().toString(), variableBinding);
}
- assertEquals(10, variableBindings.size());
+ assertEquals(11, variableBindings.size());
assertEquals(AmbariSNMPDispatcher.AMBARI_ALERT_TRAP_OID, variableBindings.get(SnmpConstants.snmpTrapOID.toString()).toValueString());
assertTrue(variableBindings.get(SnmpConstants.snmpTrapOID.toString()).getVariable() instanceof OID);
assertEquals(String.valueOf(DEFINITION_ID), variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_ID_OID).toValueString());
@@ -274,11 +285,11 @@ public class AmbariSNMPDispatcherTest {
AlertNotification notification = (AlertNotification) getAlertNotification(false);
PDU pdu = dispatcher.prepareTrap(notification, snmpVersion);
assertEquals(PDU.V1TRAP, pdu.getType());
- Map<String, VariableBinding> variableBindings = new HashMap<String, VariableBinding>();
+ Map<String, VariableBinding> variableBindings = new HashMap<>();
for (VariableBinding variableBinding : pdu.toArray()) {
variableBindings.put(variableBinding.getOid().toString(), variableBinding);
}
- assertEquals(10, variableBindings.size());
+ assertEquals(11, variableBindings.size());
assertEquals("null", variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_COMPONENT_NAME_OID).toValueString());
}
@@ -290,12 +301,12 @@ public class AmbariSNMPDispatcherTest {
Notification notification = getAlertNotification(true);
PDU pdu = dispatcher.prepareTrap(notification, snmpVersion);
assertEquals(PDU.TRAP, pdu.getType());
- Map<String, VariableBinding> variableBindings = new HashMap<String, VariableBinding>();
+ Map<String, VariableBinding> variableBindings = new HashMap<>();
for (VariableBinding variableBinding : pdu.toArray()) {
variableBindings.put(variableBinding.getOid().toString(), variableBinding);
}
- assertEquals(10, variableBindings.size());
+ assertEquals(11, variableBindings.size());
assertEquals(AmbariSNMPDispatcher.AMBARI_ALERT_TRAP_OID, variableBindings.get(SnmpConstants.snmpTrapOID.toString()).toValueString());
assertEquals(String.valueOf(DEFINITION_ID), variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_ID_OID).toValueString());
assertEquals(DEFINITION_NAME, variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_NAME_OID).toValueString());
@@ -314,7 +325,7 @@ public class AmbariSNMPDispatcherTest {
AmbariSNMPDispatcher dispatcher = spy(new AmbariSNMPDispatcher(snmp));
PDU trap = mock(PDU.class);
Notification notification = new AlertNotification();
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "public");
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
notification.DispatchProperties = properties;
@@ -336,7 +347,7 @@ public class AmbariSNMPDispatcherTest {
AmbariSNMPDispatcher dispatcher = spy(new AmbariSNMPDispatcher(snmp));
PDU trap = mock(PDU.class);
Notification notification = new AlertNotification();
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "public");
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
notification.DispatchProperties = properties;
@@ -358,7 +369,7 @@ public class AmbariSNMPDispatcherTest {
AmbariSNMPDispatcher dispatcher = spy(new AmbariSNMPDispatcher(snmp));
PDU trap = mock(PDU.class);
Notification notification = new AlertNotification();
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -384,7 +395,7 @@ public class AmbariSNMPDispatcherTest {
AmbariSNMPDispatcher dispatcher = spy(new AmbariSNMPDispatcher(snmp));
PDU trap = mock(PDU.class);
Notification notification = new AlertNotification();
- Map<String, String> properties = new HashMap<String, String>();
+ Map<String, String> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -401,7 +412,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv1() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "public");
@@ -412,7 +423,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_incorrectSNMPversion() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv4");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "public");
@@ -423,7 +434,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv1_invalid_noPort() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "public");
NotificationDispatcher dispatcher = new AmbariSNMPDispatcher(DEFAULT_SNMP_PORT);
@@ -433,7 +444,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv2c() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv2c");
properties.put(AmbariSNMPDispatcher.COMMUNITY_PROPERTY, "public");
@@ -444,7 +455,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv2c_invalid() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv2c");
NotificationDispatcher dispatcher = new AmbariSNMPDispatcher(DEFAULT_SNMP_PORT);
@@ -454,7 +465,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv3_incorrectSecurityLevel() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -468,7 +479,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv3_noAuthNoPriv() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -480,7 +491,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv3_AuthNoPriv_valid() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -493,7 +504,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv3_AuthNoPriv_invalid() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -505,7 +516,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv3_AuthPriv_valid() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -519,7 +530,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv3_AuthPriv_noPassphrases() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
@@ -531,7 +542,7 @@ public class AmbariSNMPDispatcherTest {
@Test
public void testValidateAlertValidation_SNMPv3_AuthPriv_onlyAuthPassphrase() throws Exception {
- Map<String, Object> properties = new HashMap<String, Object>();
+ Map<String, Object> properties = new HashMap<>();
properties.put(AmbariSNMPDispatcher.PORT_PROPERTY, "162");
properties.put(AmbariSNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
properties.put(AmbariSNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
http://git-wip-us.apache.org/repos/asf/ambari/blob/473abc32/ambari-server/src/test/java/org/apache/ambari/server/state/services/AlertNoticeDispatchServiceTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/services/AlertNoticeDispatchServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/services/AlertNoticeDispatchServiceTest.java
index ee29762..31000a4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/services/AlertNoticeDispatchServiceTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/services/AlertNoticeDispatchServiceTest.java
@@ -19,11 +19,15 @@ package org.apache.ambari.server.state.services;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.createStrictMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
@@ -36,27 +40,39 @@ import java.util.UUID;
import java.util.Vector;
import java.util.concurrent.Executor;
+import javax.persistence.EntityManager;
+
import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.notifications.DispatchFactory;
import org.apache.ambari.server.notifications.Notification;
import org.apache.ambari.server.notifications.NotificationDispatcher;
import org.apache.ambari.server.notifications.TargetConfigurationResult;
import org.apache.ambari.server.notifications.dispatchers.AmbariSNMPDispatcher;
-import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.DBAccessor;
+import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
import org.apache.ambari.server.orm.dao.AlertDispatchDAO;
+import org.apache.ambari.server.orm.dao.AlertsDAO;
import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
import org.apache.ambari.server.orm.entities.AlertHistoryEntity;
import org.apache.ambari.server.orm.entities.AlertNoticeEntity;
import org.apache.ambari.server.orm.entities.AlertTargetEntity;
+import org.apache.ambari.server.stack.StackManagerFactory;
import org.apache.ambari.server.state.AlertState;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.NotificationState;
import org.apache.ambari.server.state.alert.Scope;
import org.apache.ambari.server.state.alert.SourceType;
import org.apache.ambari.server.state.alert.TargetType;
+import org.apache.ambari.server.state.stack.OsFamily;
import org.easymock.EasyMock;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.easymock.PowerMock;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
import org.snmp4j.CommandResponder;
import org.snmp4j.CommandResponderEvent;
import org.snmp4j.PDU;
@@ -68,6 +84,7 @@ import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.Integer32;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
+import org.snmp4j.smi.TimeTicks;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
@@ -75,11 +92,12 @@ import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
-import com.google.inject.util.Modules;
/**
* Tests the {@link AlertNoticeDispatchService}.
*/
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ AmbariSNMPDispatcher.class, ManagementFactory.class })
public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
final static String ALERT_NOTICE_UUID_1 = UUID.randomUUID().toString();
@@ -92,9 +110,10 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
private DispatchFactory m_dispatchFactory = null;
private AlertDispatchDAO m_dao = null;
private Injector m_injector;
+ private RuntimeMXBean m_runtimeMXBean;
- List<AlertDefinitionEntity> m_definitions = new ArrayList<AlertDefinitionEntity>();
- List<AlertHistoryEntity> m_histories = new ArrayList<AlertHistoryEntity>();
+ List<AlertDefinitionEntity> m_definitions = new ArrayList<>();
+ List<AlertHistoryEntity> m_histories = new ArrayList<>();
@Before
public void before() {
@@ -103,8 +122,7 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
m_metaInfo = createNiceMock(AmbariMetaInfo.class);
// create an injector which will inject the mocks
- m_injector = Guice.createInjector(Modules.override(
- new InMemoryDefaultTestModule()).with(new MockModule()));
+ m_injector = Guice.createInjector(new MockModule());
Assert.assertNotNull(m_injector);
@@ -150,7 +168,17 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
m_histories.add(history);
}
}
- }
+
+ // mock out the uptime to be a while (since most tests are not testing
+ // system uptime)
+ m_runtimeMXBean = EasyMock.createNiceMock(RuntimeMXBean.class);
+ PowerMock.mockStatic(ManagementFactory.class);
+ expect(ManagementFactory.getRuntimeMXBean()).andReturn(m_runtimeMXBean).atLeastOnce();
+ PowerMock.replay(ManagementFactory.class);
+ expect(m_runtimeMXBean.getUptime()).andReturn(360000L).atLeastOnce();
+
+ replay( m_runtimeMXBean);
+ }
/**
* Tests the parsing of the {@link AlertHistoryEntity} list into
@@ -381,7 +409,8 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
List<Vector> expectedTrapVectors = new LinkedList<>();
Vector firstVector = new Vector();
- firstVector.add(new VariableBinding(SnmpConstants.snmpTrapOID, new OID(AmbariSNMPDispatcher.AMBARI_ALERT_TRAP_OID)));
+ firstVector.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(360000L)));
+ firstVector.add(new VariableBinding(SnmpConstants.snmpTrapOID, new OID(AmbariSNMPDispatcher.AMBARI_ALERT_TRAP_OID)));
firstVector.add(new VariableBinding(new OID(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_ID_OID), new Integer32(new BigDecimal(1L).intValueExact())));
firstVector.add(new VariableBinding(new OID(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_NAME_OID), new OctetString("alert-definition-1")));
firstVector.add(new VariableBinding(new OID(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_HASH_OID), new OctetString("1")));
@@ -517,7 +546,7 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
notice.setAlertHistory(history);
notice.setNotifyState(NotificationState.PENDING);
- ArrayList<AlertNoticeEntity> notices = new ArrayList<AlertNoticeEntity>();
+ ArrayList<AlertNoticeEntity> notices = new ArrayList<>();
notices.add(notice);
return notices;
@@ -575,7 +604,7 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
notice2.setAlertHistory(history2);
notice2.setNotifyState(NotificationState.PENDING);
- ArrayList<AlertNoticeEntity> notices = new ArrayList<AlertNoticeEntity>();
+ ArrayList<AlertNoticeEntity> notices = new ArrayList<>();
notices.add(notice1);
notices.add(notice2);
@@ -637,7 +666,7 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
private static class MockSnmpDispatcher implements
NotificationDispatcher {
- private List<Notification> m_notifications = new ArrayList<Notification>();
+ private List<Notification> m_notifications = new ArrayList<>();
/**
* {@inheritDoc}
@@ -762,9 +791,20 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
*/
@Override
public void configure(Binder binder) {
+ Cluster cluster = EasyMock.createNiceMock(Cluster.class);
binder.bind(AlertDispatchDAO.class).toInstance(m_dao);
binder.bind(DispatchFactory.class).toInstance(m_dispatchFactory);
+ binder.bind(StackManagerFactory.class).toInstance(createNiceMock(StackManagerFactory.class));
binder.bind(AmbariMetaInfo.class).toInstance(m_metaInfo);
+ binder.bind(Clusters.class).toInstance(createNiceMock(Clusters.class));
+ binder.bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+ binder.bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
+ binder.bind(Cluster.class).toInstance(cluster);
+ binder.bind(AlertDefinitionDAO.class).toInstance(createNiceMock(AlertDefinitionDAO.class));
+ binder.bind(AlertsDAO.class).toInstance(createNiceMock(AlertsDAO.class));
+ binder.bind(EntityManager.class).toInstance(createNiceMock(EntityManager.class));
+
+ binder.bind(AlertNoticeDispatchService.class).toInstance(new AlertNoticeDispatchService());
EasyMock.expect(m_metaInfo.getServerVersion()).andReturn("2.0.0").anyTimes();
EasyMock.replay(m_metaInfo);
@@ -782,6 +822,7 @@ public class AlertNoticeDispatchServiceTest extends AlertNoticeDispatchService {
receivedTrapsVectors = new LinkedList<>();
CommandResponder trapPrinter = new CommandResponder() {
+ @Override
public synchronized void processPdu(CommandResponderEvent e){
PDU command = e.getPDU();
if (command != null) {