@Test public void testPut() throws Throwable { // create a non-elastic RP ResourcePoolState rp = createRp(); assertEquals(EnumSet.noneOf(ResourcePoolProperty.class), rp.properties); assertTrue(isNonElasticQuery(rp.query)); // create EPZ for the RP ElasticPlacementZoneState epz = createEpz(rp.documentSelfLink, "tag1", "tag2"); // verify RP is now elastic rp = getDocument(ResourcePoolState.class, rp.documentSelfLink); assertEquals(EnumSet.of(ResourcePoolProperty.ELASTIC), rp.properties); assertFalse(isNonElasticQuery(rp.query)); // add more tags through a put request epz.tagLinksToMatch.add("tag3"); epz.tagLinksToMatch.add("tag4"); doPut(epz); // verify RP is updated with the new tags rp = getDocument(ResourcePoolState.class, rp.documentSelfLink); assertEquals(EnumSet.of(ResourcePoolProperty.ELASTIC), rp.properties); }
@Test public void testPutNoTags() throws Throwable { // create a non-elastic RP ResourcePoolState rp = createRp(); assertEquals(EnumSet.noneOf(ResourcePoolProperty.class), rp.properties); assertTrue(isNonElasticQuery(rp.query)); // create EPZ for the RP ElasticPlacementZoneState epz = createEpz(rp.documentSelfLink, "tag1", "tag2"); // verify RP is now elastic rp = getDocument(ResourcePoolState.class, rp.documentSelfLink); assertEquals(EnumSet.of(ResourcePoolProperty.ELASTIC), rp.properties); assertFalse(isNonElasticQuery(rp.query)); // add more tags through a put request epz.tagLinksToMatch.clear();; doPut(epz); // verify RP is not elastic rp = getDocument(ResourcePoolState.class, rp.documentSelfLink); assertEquals(EnumSet.noneOf(ResourcePoolProperty.class), rp.properties); assertTrue(isNonElasticQuery(rp.query)); }