@Override public boolean remove(Policy policy) { ((AbstractPolicy)policy).destroy(); boolean changed = policiesInternal.remove(policy); if (changed) { getManagementSupport().getEntityChangeListener().onPolicyRemoved(policy); sensors().emit(AbstractEntity.POLICY_REMOVED, new PolicyDescriptor(policy)); } return changed; }
@Test public void testAddPolicySpec() { MyPolicy policy = entity.policies().add(PolicySpec.create(MyPolicy.class)); assertNotNull(policy); assertEquals(ImmutableList.copyOf(entity.policies()), ImmutableList.of(policy)); assertEqualsEventually(added, ImmutableList.of(new PolicyDescriptor(policy))); }
@Override public void add(Policy policy) { Policy old = findApparentlyEqualAndWarnIfNotSameUniqueTag(policiesInternal, policy); if (old!=null) { LOG.debug("Removing "+old+" when adding "+policy+" to "+AbstractEntity.this); remove(old); } CatalogUtils.setCatalogItemIdOnAddition(AbstractEntity.this, policy); policiesInternal.add((AbstractPolicy)policy); ((AbstractPolicy)policy).setEntity(AbstractEntity.this); ConfigConstraints.assertValid(policy); getManagementSupport().getEntityChangeListener().onPolicyAdded(policy); sensors().emit(AbstractEntity.POLICY_ADDED, new PolicyDescriptor(policy)); }
@Test public void testAddAndRemovePolicies() { MyPolicy policy1 = entity.policies().add(PolicySpec.create(MyPolicy.class)); assertEquals(ImmutableList.copyOf(entity.policies()), ImmutableList.of(policy1)); assertEqualsEventually(added, ImmutableList.of(new PolicyDescriptor(policy1))); MyPolicy policy2 = entity.policies().add(PolicySpec.create(MyPolicy.class)); assertEquals(ImmutableList.copyOf(entity.policies()), ImmutableList.of(policy1, policy2)); assertEqualsEventually(added, ImmutableList.of(new PolicyDescriptor(policy1), new PolicyDescriptor(policy2))); entity.policies().remove(policy1); assertEquals(ImmutableList.copyOf(entity.policies()), ImmutableList.of(policy2)); assertEqualsEventually(removed, ImmutableList.of(new PolicyDescriptor(policy1))); entity.policies().remove(policy2); assertEquals(ImmutableList.copyOf(entity.policies()), ImmutableList.of()); assertEqualsEventually(removed, ImmutableList.of(new PolicyDescriptor(policy1), new PolicyDescriptor(policy2))); }
@Test public void testRemoveAllPolicies() { MyPolicy policy1 = entity.policies().add(PolicySpec.create(MyPolicy.class)); MyPolicy policy2 = entity.policies().add(PolicySpec.create(MyPolicy.class)); entity.policies().removeAllPolicies(); assertEquals(ImmutableList.copyOf(entity.policies()), ImmutableList.of()); assertCollectionEqualsEventually(removed, ImmutableSet.of(new PolicyDescriptor(policy1), new PolicyDescriptor(policy2))); }