@Test
public void testReadCustomActionDefinitions() throws Exception {

  ActionDefinitionManager manager = new ActionDefinitionManager();
  manager.readCustomActionDefinitions(new File(CUSTOM_ACTION_DEFINITION_ROOT));
  Assert.assertEquals(3, manager.getAllActionDefinition().size());
  ActionDefinition ad = manager.getActionDefinition("customAction1");
  Assert.assertNotNull(ad);
  Assert.assertEquals("customAction1", ad.getActionName());
  Assert.assertEquals("A random test", ad.getDescription());
  Assert.assertEquals("threshold", ad.getInputs());
  Assert.assertEquals("TASKTRACKER", ad.getTargetComponent());
  Assert.assertEquals("MAPREDUCE", ad.getTargetService());
  Assert.assertEquals(60, (int)ad.getDefaultTimeout());
  Assert.assertEquals(TargetHostType.ALL, ad.getTargetType());
  Assert.assertEquals(ActionType.USER, ad.getActionType());
  Assert.assertEquals(EnumSet.of(RoleAuthorization.HOST_ADD_DELETE_COMPONENTS, RoleAuthorization.HOST_ADD_DELETE_HOSTS), ad.getPermissions());
  ad = manager.getActionDefinition("customAction2");
  Assert.assertNotNull(ad);
  Assert.assertEquals("customAction2", ad.getActionName());
  Assert.assertEquals("A random test", ad.getDescription());
  Assert.assertEquals(null, ad.getInputs());
  Assert.assertEquals("TASKTRACKER", ad.getTargetComponent());
  Assert.assertEquals("MAPREDUCE", ad.getTargetService());
  Assert.assertEquals(60, (int)ad.getDefaultTimeout());
  Assert.assertEquals(null, ad.getTargetType());
  Assert.assertEquals(ActionType.USER, ad.getActionType());
  Assert.assertEquals(EnumSet.of(RoleAuthorization.HOST_ADD_DELETE_COMPONENTS, RoleAuthorization.HOST_ADD_DELETE_HOSTS), ad.getPermissions());
  ad = manager.getActionDefinition("customAction3");
  Assert.assertNotNull(ad);
  Assert.assertEquals("customAction3", ad.getActionName());
  Assert.assertEquals("A random test", ad.getDescription());
  Assert.assertEquals(null, ad.getInputs());
  Assert.assertEquals("TASKTRACKER", ad.getTargetComponent());
  Assert.assertEquals("MAPREDUCE", ad.getTargetService());
  Assert.assertEquals(60, (int)ad.getDefaultTimeout());
  Assert.assertEquals(null, ad.getTargetType());
  Assert.assertEquals(ActionType.USER, ad.getActionType());
  Assert.assertNull(ad.getPermissions());
}