@Before public void setupTest() throws Exception { clearData(); }
@Test public void testGetTenantProvisioners() throws IOException { ProvisionerStore store = getProvisionerStore(); store.writeProvisioner(provisioner1); store.writeProvisioner(provisioner2); Assert.assertTrue(store.getTenantProvisioners("tenantB").isEmpty()); Assert.assertEquals(ImmutableSet.of(provisioner2), ImmutableSet.copyOf(store.getTenantProvisioners("tenantA"))); Assert.assertEquals(ImmutableSet.of(provisioner1), ImmutableSet.copyOf(store.getTenantProvisioners("tenantX"))); Assert.assertEquals(ImmutableSet.of(provisioner2), ImmutableSet.copyOf(store.getTenantProvisioners("tenantZ"))); Assert.assertEquals(ImmutableSet.of(provisioner1, provisioner2), ImmutableSet.copyOf(store.getTenantProvisioners("tenantY"))); }
@Test public void testGetAllProvisioners() throws IOException { ProvisionerStore store = getProvisionerStore(); Assert.assertTrue(store.getAllProvisioners().isEmpty()); store.writeProvisioner(provisioner1); Assert.assertEquals(ImmutableSet.of(provisioner1), ImmutableSet.copyOf(store.getAllProvisioners())); store.writeProvisioner(provisioner2); Assert.assertEquals(ImmutableSet.of(provisioner1, provisioner2), ImmutableSet.copyOf(store.getAllProvisioners())); }
@Test public void testGetIdleProvisioners() throws IOException { ProvisionerStore store = getProvisionerStore(); store.writeProvisioner(provisioner1); store.writeProvisioner(provisioner2); store.setHeartbeat(provisioner1.getId(), 100L); store.setHeartbeat(provisioner2.getId(), 1000L); Assert.assertTrue(store.getTimedOutProvisioners(99L).isEmpty()); Assert.assertEquals(ImmutableSet.of(provisioner1), ImmutableSet.copyOf(store.getTimedOutProvisioners(101L))); Assert.assertEquals(ImmutableSet.of(provisioner1, provisioner2), ImmutableSet.copyOf(store.getTimedOutProvisioners(1001L))); }
@Test public void testGetProvisionersWithFreeCapacity() throws IOException { ProvisionerStore store = getProvisionerStore(); store.writeProvisioner(provisioner1); Assert.assertTrue(store.getProvisionersWithFreeCapacity().isEmpty()); store.writeProvisioner(provisioner2); Assert.assertEquals(ImmutableSet.of(provisioner2), ImmutableSet.copyOf(store.getProvisionersWithFreeCapacity())); Provisioner updatedProvisioner1 = new Provisioner( provisioner1.getId(), provisioner1.getHost(), provisioner1.getPort(), provisioner1.getCapacityTotal(), ImmutableMap.<String, Integer>of("tenantX", 5), ImmutableMap.<String, Integer>of("tenantX", 5)); store.writeProvisioner(updatedProvisioner1); Assert.assertEquals(ImmutableSet.of(updatedProvisioner1, provisioner2), ImmutableSet.copyOf(store.getProvisionersWithFreeCapacity())); }
@Test public void testWriteProvisionerIsTransactional() throws InterruptedException, IOException { final ProvisionerStore store = getProvisionerStore(); final int writesPerThread = 10; String provisionerId = "p1";
@Test public void testWriteGetDeleteProvisioner() throws IOException { ProvisionerStore store = getProvisionerStore(); String id = provisioner1.getId(); Assert.assertNull(store.getProvisioner(id)); store.writeProvisioner(provisioner1); Assert.assertEquals(provisioner1, store.getProvisioner(id)); store.deleteProvisioner(id); Assert.assertNull(store.getProvisioner(id)); }
@Test public void testWriteWithTenantUpdate() throws IOException { ProvisionerStore store = getProvisionerStore(); store.writeProvisioner(provisioner1); Assert.assertEquals(provisioner1, store.getProvisioner(provisioner1.getId())); Provisioner updatedProvisioner1 = new Provisioner( provisioner1.getId(), provisioner1.getHost(), provisioner1.getPort(), 100, ImmutableMap.<String, Integer>of("tenantA", 50, "tenantY", 5, "tenantZ", 0), ImmutableMap.<String, Integer>of("tenantA", 50, "tenantY", 5, "tenantZ", 1) ); store.writeProvisioner(updatedProvisioner1); Assert.assertEquals(updatedProvisioner1, store.getProvisioner(provisioner1.getId())); Assert.assertEquals(0, store.getNumAssignedWorkers("tenantX")); Assert.assertEquals(44, store.getFreeCapacity()); for (Provisioner provisioner : store.getTenantProvisioners("tenantX")) { Assert.assertFalse(provisioner.getId().equals(provisioner1.getId())); } }
@Test public void testGetFreeCapacity() throws IOException { ProvisionerStore store = getProvisionerStore(); Assert.assertEquals(0, store.getFreeCapacity());
@Test public void testGetNumAssignedWorkers() throws IOException { ProvisionerStore store = getProvisionerStore();