@Test
public void testPatchNoTags() throws Throwable {
ResourcePoolState rp = createRp();
assertEquals(EnumSet.noneOf(ResourcePoolProperty.class), rp.properties);
assertTrue(isNonElasticQuery(rp.query));
String epzLink = createEpz(rp.documentSelfLink, "tag1", "tag2").documentSelfLink;
rp = getDocument(ResourcePoolState.class, rp.documentSelfLink);
assertEquals(EnumSet.of(ResourcePoolProperty.ELASTIC), rp.properties);
assertFalse(isNonElasticQuery(rp.query));
Map<String, Collection<Object>> itemsToRemove = new HashMap<>();
itemsToRemove.put(ElasticPlacementZoneState.FIELD_NAME_TAG_LINKS_TO_MATCH,
new ArrayList<>(Arrays.asList("tag1", "tag2")));
ServiceStateCollectionUpdateRequest updateRequest = ServiceStateCollectionUpdateRequest
.create(null, itemsToRemove);
verifyOperation(Operation.createPatch(this.host, epzLink).setBody(updateRequest));
ElasticPlacementZoneState newEpzState = getDocument(ElasticPlacementZoneState.class,
epzLink);
assertNotNull(newEpzState.tagLinksToMatch);
assertTrue(newEpzState.tagLinksToMatch.isEmpty());
rp = getDocument(ResourcePoolState.class, rp.documentSelfLink);
assertEquals(EnumSet.noneOf(ResourcePoolProperty.class), rp.properties);
assertTrue(isNonElasticQuery(rp.query));
}