@Test public void testContinuousIsSatisfied() { Model mo = new DefaultModel(); List<VM> vms = Util.newVMs(mo, 5); List<Node> ns = Util.newNodes(mo, 5); Mapping map = mo.getMapping(); map.addOnlineNode(ns.get(0)); map.addOnlineNode(ns.get(1)); map.addOnlineNode(ns.get(2)); map.addRunningVM(vms.get(0), ns.get(0)); map.addRunningVM(vms.get(1), ns.get(1)); map.addReadyVM(vms.get(2)); map.addRunningVM(vms.get(3), ns.get(2)); Quarantine q = new Quarantine(ns.get(0)); ReconfigurationPlan plan = new DefaultReconfigurationPlan(mo); Assert.assertEquals(q.isSatisfied(plan), true); plan.add(new ShutdownVM(vms.get(1), ns.get(1), 1, 2)); Assert.assertEquals(q.isSatisfied(plan), true); plan.add(new BootVM(vms.get(2), ns.get(0), 0, 1)); Assert.assertEquals(q.isSatisfied(plan), false); plan = new DefaultReconfigurationPlan(mo); plan.add(new BootVM(vms.get(2), ns.get(2), 0, 1)); Assert.assertEquals(new Quarantine(ns.get(1)).isSatisfied(plan), true); plan.add(new MigrateVM(vms.get(3), ns.get(2), ns.get(1), 0, 1)); Assert.assertEquals(new Quarantine(ns.get(1)).isSatisfied(plan), false); plan = new DefaultReconfigurationPlan(mo); plan.add(new MigrateVM(vms.get(1), ns.get(1), ns.get(0), 0, 1)); Assert.assertEquals(q.isSatisfied(plan), false); }
/** * Unit tests for {@link AllocateEvent}. * * @author Fabien Hermenier */ public class AllocateEventTest { static Model mo = new DefaultModel(); static List<Node> ns = Util.newNodes(mo, 10); static List<VM> vms = Util.newVMs(mo, 10); static AllocateEvent a = new AllocateEvent(vms.get(0), "foo", 3); @Test public void testBasics() { AllocateEvent na = new AllocateEvent(vms.get(0), "foo", 3); Assert.assertEquals(vms.get(0), na.getVM()); Assert.assertEquals("foo", na.getResourceId()); Assert.assertEquals(3, na.getAmount()); Assert.assertFalse(na.toString().contains("null")); } @Test public void testEqualsHashCode() { AllocateEvent na = new AllocateEvent(vms.get(0), "foo", 3); AllocateEvent na2 = new AllocateEvent(vms.get(0), "foo", 3); Assert.assertFalse(na.equals(new Object())); Assert.assertTrue(na.equals(na)); Assert.assertTrue(na.equals(na2)); Assert.assertTrue(na2.equals(na)); Assert.assertEquals(na.hashCode(), na2.hashCode()); Assert.assertFalse(na.equals(new AllocateEvent(vms.get(1), "foo", 3))); Assert.assertFalse(na.equals(new AllocateEvent(vms.get(0), "bar", 3))); Assert.assertFalse(na.equals(new AllocateEvent(vms.get(0), "foo", 5))); } @Test public void testApply() { AllocateEvent na = new AllocateEvent(vms.get(0), "foo", 3); Model mo = new DefaultModel(); Mapping map = mo.getMapping(); map.addOnlineNode(ns.get(0)); map.addRunningVM(vms.get(0), ns.get(0)); Assert.assertFalse(na.apply(mo)); ShareableResource rc = new ShareableResource("foo"); mo.attach(rc); Assert.assertTrue(na.apply(mo)); Assert.assertEquals(3, rc.getConsumption(vms.get(0))); } @Test public void testVisit() { ActionVisitor visitor = mock(ActionVisitor.class); a.visit(visitor); verify(visitor).visit(a); } }
@Test public void testQuarantines() { Model mo = new DefaultModel(); List<Node> ns = Util.newNodes(mo, 5); List<Quarantine> qs = Quarantine.newQuarantine(ns); Assert.assertEquals(qs.size(), ns.size()); qs.stream() .forEach( (q) -> { Assert.assertTrue(ns.containsAll(q.getInvolvedNodes())); Assert.assertTrue(q.isContinuous()); }); }