From 06fb8ade5eecbd98dc68e8eb36af56f164956ba9 Mon Sep 17 00:00:00 2001 From: pnguyen Date: Mon, 2 Nov 2009 10:35:32 -0800 Subject: [PATCH] Improve validation of recovery alert definitions and add one more test case --- ...tDefinitionSyncRecoveryCondition_test.java | 8 ++--- .../hqapi1/test/AlertDefinitionTestBase.java | 3 +- .../hqapi1/test/AlertFireRecovery_test.java | 34 +++++++++++++++---- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/org/hyperic/hq/hqapi1/test/AlertDefinitionSyncRecoveryCondition_test.java b/src/org/hyperic/hq/hqapi1/test/AlertDefinitionSyncRecoveryCondition_test.java index ba69a225..70d988d8 100644 --- a/src/org/hyperic/hq/hqapi1/test/AlertDefinitionSyncRecoveryCondition_test.java +++ b/src/org/hyperic/hq/hqapi1/test/AlertDefinitionSyncRecoveryCondition_test.java @@ -91,14 +91,14 @@ public void testValidRecoveryConditionTypeAlert() throws Exception { // Find availability metric for the passed in resource Metric m = findAvailabilityMetric(platform); - AlertDefinition def = generateTestDefinition("Test Problem Alert"); + AlertDefinition def = generateTestDefinition("Test Resource Type Problem Alert"); def.setResourcePrototype(platform.getResourcePrototype()); final double THRESHOLD = 0; def.getAlertCondition().add( AlertDefinitionBuilder.createThresholdCondition(true, m.getName(), AlertComparator.EQUALS, THRESHOLD)); - AlertDefinition recoveryDef = generateTestDefinition("Test Recovery Alert"); + AlertDefinition recoveryDef = generateTestDefinition("Test Resource Type Recovery Alert"); recoveryDef.setResourcePrototype(platform.getResourcePrototype()); AlertCondition threshold = AlertDefinitionBuilder.createThresholdCondition(true, m.getName(), @@ -173,7 +173,7 @@ public void testSyncRecoveryWithoutProblemDefTypeAlert() throws Exception { Metric m = findAvailabilityMetric(platform); // First sync the problem definition - AlertDefinition def = generateTestDefinition("Test Problem Alert"); + AlertDefinition def = generateTestDefinition("Test Resource Type Problem Alert"); def.setResourcePrototype(platform.getResourcePrototype()); final double THRESHOLD = 0; def.getAlertCondition().add( @@ -184,7 +184,7 @@ public void testSyncRecoveryWithoutProblemDefTypeAlert() throws Exception { validateTypeDefinition(parentDown); // Next, sync the recovery - AlertDefinition recoveryDef = generateTestDefinition("Test Recovery Alert"); + AlertDefinition recoveryDef = generateTestDefinition("Test Resource Type Recovery Alert"); recoveryDef.setResourcePrototype(platform.getResourcePrototype()); AlertCondition threshold = AlertDefinitionBuilder.createThresholdCondition(true, m.getName(), diff --git a/src/org/hyperic/hq/hqapi1/test/AlertDefinitionTestBase.java b/src/org/hyperic/hq/hqapi1/test/AlertDefinitionTestBase.java index c823f37e..f053beb0 100644 --- a/src/org/hyperic/hq/hqapi1/test/AlertDefinitionTestBase.java +++ b/src/org/hyperic/hq/hqapi1/test/AlertDefinitionTestBase.java @@ -225,7 +225,8 @@ protected void validateRecoveryAlertDefinition(AlertDefinition recoveryDef, Set actualAlertActions = new HashSet(); for (AlertAction a : recovery.getAlertAction()) { - actualAlertActions.add(a.getClassName()); + assertTrue("There was a duplicate alert action: " + a.getClassName(), + actualAlertActions.add(a.getClassName())); } assertEquals("Recovery alert definition has unexpected alert actions.", diff --git a/src/org/hyperic/hq/hqapi1/test/AlertFireRecovery_test.java b/src/org/hyperic/hq/hqapi1/test/AlertFireRecovery_test.java index bb3978ee..35168ce4 100644 --- a/src/org/hyperic/hq/hqapi1/test/AlertFireRecovery_test.java +++ b/src/org/hyperic/hq/hqapi1/test/AlertFireRecovery_test.java @@ -34,10 +34,18 @@ public void testFireRecoveryAlert() throws Exception { createAndFireAlerts(false, false); } + public void testFireRecoveryAlertWithEscalation() throws Exception { + Escalation e = createEscalation(); + createAndFireAlerts(e, false, false, true); + + // Cleanup + deleteEscalation(e); + } + public void testWillRecoverAndFireRecoveryAlert() throws Exception { createAndFireAlerts(false, true); } - + /** * To validate HQ-1894 */ @@ -82,13 +90,26 @@ public void testFireProblemAlertAndThenCreateAndFireRecoveryAlert() */ } + // TODO testFireResourceTypeRecoveryAlert + // TODO testWillRecoverAndFireRecoveryTypeAlert + // TODO testFireRecoveryTypeAlertWithEscalation + private void createAndFireAlerts(boolean addRecoveryPostCreate, boolean willRecover) throws Exception { + + createAndFireAlerts(null, false, addRecoveryPostCreate, willRecover); + } + + private void createAndFireAlerts(Escalation escalation, + boolean resourceType, + boolean addRecoveryPostCreate, + boolean willRecover) + throws Exception { Resource platform = getLocalPlatformResource(false, false); - AlertDefinition problemDef = createProblemAlertDefinition(platform, null, willRecover); + AlertDefinition problemDef = createProblemAlertDefinition(platform, escalation, willRecover); AlertDefinition recoveryDef = createRecoveryAlertDefinition(problemDef, addRecoveryPostCreate); Alert problemAlert = fireProblemAlert(problemDef, willRecover); @@ -151,10 +172,6 @@ private Alert fireRecoveryAlert(AlertDefinition recoveryDef, return recoveryAlert; } - // TODO testWillRecoverAndFireRecoveryTypeAlert - // TODO testFireRecoveryAlertWithEscalation - // TODO testFireRecoveryTypeAlertWithEscalation - private AlertDefinition createProblemAlertDefinition(Resource resource, Escalation e, boolean willRecover) @@ -179,6 +196,11 @@ private AlertDefinition createProblemAlertDefinition(Resource resource, validateProblemAlertDefinitionAttributes(newDef, willRecover, true); + assertTrue("The problem alert definition should have " + + ((e == null) ? "no" : "an") + " escalation", + (e == null) ? newDef.getEscalation() == null + : newDef.getEscalation() != null); + return newDef; }