@Test
public void testStatusOverrideSetAndRemoval() throws Exception {
InstanceInfo seed = createLocalInstance(LOCAL_REGION_INSTANCE_1_HOSTNAME);
seed.setLastDirtyTimestamp(100l);
InstanceInfo myInstance1 = new InstanceInfo(seed);
registerInstanceLocally(myInstance1);
verifyLocalInstanceStatus(myInstance1.getId(), InstanceStatus.UP);
boolean statusResult = registry.statusUpdate(LOCAL_REGION_APP_NAME, seed.getId(), InstanceStatus.OUT_OF_SERVICE, "0", false);
assertThat("Couldn't override instance status", statusResult, is(true));
verifyLocalInstanceStatus(seed.getId(), InstanceStatus.OUT_OF_SERVICE);
InstanceInfo myInstance2 = new InstanceInfo(seed);
myInstance2.setLastDirtyTimestamp(200l);
registry.register(myInstance2, 10000000, false);
verifyLocalInstanceStatus(seed.getId(), InstanceStatus.OUT_OF_SERVICE);
statusResult = registry.deleteStatusOverride(LOCAL_REGION_APP_NAME, seed.getId(), InstanceStatus.DOWN, "0", false);
assertThat("Couldn't remove status override", statusResult, is(true));
verifyLocalInstanceStatus(seed.getId(), InstanceStatus.DOWN);
InstanceInfo myInstance3 = new InstanceInfo(seed);
myInstance3.setLastDirtyTimestamp(200l);
registry.register(myInstance3, 10000000, false);
verifyLocalInstanceStatus(seed.getId(), InstanceStatus.UP);
}