@Override public void run() { T val = entity.getAttribute(attribute); Asserts.assertFalse(reject.contains(val), "Attribute " + attribute + " on " + entity + " has disallowed value " + val); } });
@Override public void run() { T val = entity.getAttribute(attribute); Asserts.assertFalse(reject.contains(val), "Attribute " + attribute + " on " + entity + " has disallowed value " + val); } });
public void run() { Asserts.assertFalse(executing.get()); } });
@Test public void testHasOsgiManifestWhenNoManifest() throws Exception { assertFalse(bundleMaker.hasOsgiManifest(emptyJar)); }
@Test public void testHasOsgiManifestWhenInvalidManifest() throws Exception { Map<String, String> manifest = ImmutableMap.of(Attributes.Name.MANIFEST_VERSION.toString(), "1.2.3", "mykey", "myval"); generatedJar = bundleMaker.copyAddingManifest(emptyJar, manifest); assertFalse(bundleMaker.hasOsgiManifest(generatedJar)); }
protected static Effector<?> assertHasInitializers(Entity entity, String effectorName) { Maybe<Effector<?>> effectorMaybe = entity.getEntityType().getEffectorByName(effectorName); assertFalse(effectorMaybe.isAbsent()); return effectorMaybe.get(); }
protected static Effector<?> assertHasInitializers(Entity entity, String effectorName) { Maybe<Effector<?>> effectorMaybe = entity.getEntityType().getEffectorByName(effectorName); assertFalse(effectorMaybe.isAbsent()); return effectorMaybe.get(); }
@Test public void testAddAnonymousBomTwiceDeletesOldEmptyOne() { Map<String, ManagedBundle> b1 = ((ManagementContextInternal)mgmt()).getOsgiManager().get().getManagedBundles(); addCatalogItems(bomAnonymous()); Map<String, ManagedBundle> b2_new = MutableMap.copyOf( ((ManagementContextInternal)mgmt()).getOsgiManager().get().getManagedBundles() ); for (String old: b1.keySet()) b2_new.remove(old); RegisteredType sample = mgmt().getTypeRegistry().get("sample"); Asserts.assertNotNull(sample); Asserts.assertSize(b2_new.values(), 1); addCatalogItems(bomAnonymous()); Map<String, ManagedBundle> b3 = MutableMap.copyOf( ((ManagementContextInternal)mgmt()).getOsgiManager().get().getManagedBundles() ); Map<String, ManagedBundle> b3_new = MutableMap.copyOf(b3); for (String old: b1.keySet()) b3_new.remove(old); for (String old: b2_new.keySet()) b3_new.remove(old); Asserts.assertSize(b3_new.values(), 1); Asserts.assertFalse(b3_new.keySet().contains( Iterables.getOnlyElement(b2_new.keySet()) )); }
@Test public void testScheduledEffectorFiresImmediately() { TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class) .policy(PolicySpec.create(ScheduledEffectorPolicy.class) .configure(ScheduledEffectorPolicy.EFFECTOR, "myEffector") .configure(ScheduledEffectorPolicy.EFFECTOR_ARGUMENTS, ImmutableMap.of()) .configure(ScheduledEffectorPolicy.TIME, "immediately") .configure(PeriodicEffectorPolicy.START_SENSOR, START))); Policy policy = Iterables.tryFind(entity.policies(), Predicates.instanceOf(ScheduledEffectorPolicy.class)).orNull(); Asserts.assertNotNull(policy); Asserts.assertTrue(entity.getCallHistory().isEmpty()); Asserts.assertFalse(policy.config().get(ScheduledEffectorPolicy.RUNNING)); entity.sensors().set(START, Boolean.TRUE); assertConfigEqualsEventually(policy, ScheduledEffectorPolicy.RUNNING, true); assertCallHistoryContainsEventually(entity, "myEffector"); }
@Test public void testPeriodicEffectorFires() { TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class) .policy(PolicySpec.create(PeriodicEffectorPolicy.class) .configure(PeriodicEffectorPolicy.EFFECTOR, "myEffector") .configure(PeriodicEffectorPolicy.EFFECTOR_ARGUMENTS, ImmutableMap.of()) .configure(PeriodicEffectorPolicy.PERIOD, Duration.ONE_MILLISECOND) .configure(PeriodicEffectorPolicy.TIME, "immediately") .configure(PeriodicEffectorPolicy.START_SENSOR, START))); Policy policy = Iterables.tryFind(entity.policies(), Predicates.instanceOf(PeriodicEffectorPolicy.class)).orNull(); Asserts.assertNotNull(policy); Asserts.assertTrue(entity.getCallHistory().isEmpty()); Asserts.assertFalse(policy.config().get(PeriodicEffectorPolicy.RUNNING)); entity.sensors().set(START, Boolean.TRUE); assertConfigEqualsEventually(policy, PeriodicEffectorPolicy.RUNNING, true); assertCallHistoryEventually(entity, "myEffector", 2); }
@Test public void testPeriodicEffectorStartsAfterRebind() throws Exception { TestEntity origEntity = origApp.createAndManageChild(EntitySpec.create(TestEntity.class) .policy(PolicySpec.create(PeriodicEffectorPolicy.class) .configure(PeriodicEffectorPolicy.EFFECTOR, "myEffector") .configure(PeriodicEffectorPolicy.EFFECTOR_ARGUMENTS, ImmutableMap.of()) .configure(PeriodicEffectorPolicy.PERIOD, Duration.millis(1)) .configure(PeriodicEffectorPolicy.TIME, "immediately") .configure(PeriodicEffectorPolicy.START_SENSOR, START))); newApp = rebind(RebindOptions.create().terminateOrigManagementContext(true)); TestEntity newEntity = (TestEntity) Iterables.find(newApp.getChildren(), Predicates.instanceOf(TestEntity.class)); Policy newPolicy = Iterables.find(newEntity.policies(), Predicates.instanceOf(PeriodicEffectorPolicy.class)); Asserts.assertFalse(newPolicy.config().get(PeriodicEffectorPolicy.RUNNING)); Asserts.assertFalse(newEntity.getCallHistory().contains("myEffector")); newEntity.sensors().set(START, Boolean.TRUE); assertConfigEqualsEventually(newPolicy, PeriodicEffectorPolicy.RUNNING, true); assertCallHistoryEventually(newEntity, "myEffector", 2); }
@Test public void testScheduledEffectorFiresOnSensor() { TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class) .policy(PolicySpec.create(ScheduledEffectorPolicy.class) .configure(ScheduledEffectorPolicy.EFFECTOR, "myEffector") .configure(ScheduledEffectorPolicy.EFFECTOR_ARGUMENTS, ImmutableMap.of()) .configure(ScheduledEffectorPolicy.START_SENSOR, START))); Policy policy = Iterables.tryFind(entity.policies(), Predicates.instanceOf(ScheduledEffectorPolicy.class)).orNull(); Asserts.assertNotNull(policy); Asserts.assertTrue(entity.getCallHistory().isEmpty()); Asserts.assertFalse(policy.config().get(ScheduledEffectorPolicy.RUNNING)); entity.sensors().set(START, Boolean.TRUE); assertConfigEqualsEventually(policy, ScheduledEffectorPolicy.RUNNING, true); assertCallHistoryNeverContinually(entity, "myEffector"); entity.sensors().set(ScheduledEffectorPolicy.INVOKE_IMMEDIATELY, Boolean.TRUE); assertCallHistoryContainsEventually(entity, "myEffector"); } }
@Test(groups="Integration") public void testScheduledEffectorFiresAfterDelay() { TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class) .policy(PolicySpec.create(ScheduledEffectorPolicy.class) .configure(ScheduledEffectorPolicy.EFFECTOR, "myEffector") .configure(ScheduledEffectorPolicy.EFFECTOR_ARGUMENTS, ImmutableMap.of()) .configure(ScheduledEffectorPolicy.WAIT, Duration.FIVE_SECONDS) .configure(ScheduledEffectorPolicy.START_SENSOR, START))); Policy policy = Iterables.tryFind(entity.policies(), Predicates.instanceOf(ScheduledEffectorPolicy.class)).orNull(); Asserts.assertNotNull(policy); Asserts.assertTrue(entity.getCallHistory().isEmpty()); Asserts.assertFalse(policy.config().get(ScheduledEffectorPolicy.RUNNING)); entity.sensors().set(START, Boolean.TRUE); assertConfigEqualsEventually(policy, ScheduledEffectorPolicy.RUNNING, true); assertCallHistoryNeverContinually(entity, "myEffector"); Time.sleep(Duration.seconds(5)); assertCallHistoryContainsEventually(entity, "myEffector"); }
@Test(groups="Integration") public void testPeriodicEffectorFiresAfterDelay() { TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class) .policy(PolicySpec.create(PeriodicEffectorPolicy.class) .configure(PeriodicEffectorPolicy.EFFECTOR, "myEffector") .configure(PeriodicEffectorPolicy.EFFECTOR_ARGUMENTS, ImmutableMap.of()) .configure(PeriodicEffectorPolicy.PERIOD, Duration.ONE_MILLISECOND) .configure(PeriodicEffectorPolicy.WAIT, Duration.FIVE_SECONDS) .configure(PeriodicEffectorPolicy.START_SENSOR, START))); Policy policy = Iterables.tryFind(entity.policies(), Predicates.instanceOf(PeriodicEffectorPolicy.class)).orNull(); Asserts.assertNotNull(policy); Asserts.assertTrue(entity.getCallHistory().isEmpty()); Asserts.assertFalse(policy.config().get(PeriodicEffectorPolicy.RUNNING)); entity.sensors().set(START, Boolean.TRUE); assertConfigEqualsEventually(policy, PeriodicEffectorPolicy.RUNNING, true); assertCallHistoryNeverContinually(entity, "myEffector"); Time.sleep(Duration.seconds(5)); assertCallHistoryEventually(entity, "myEffector", 2); }