@Test
public void remotePutNotModified() throws Throwable {

    int serviceCount = 10;
    List<Service> services = this.host.doThroughputServiceStart(
            serviceCount, MinimalTestService.class,
            this.host.buildMinimalTestState(),
            EnumSet.noneOf(Service.ServiceOption.class), null);
    MinimalTestServiceState body = (MinimalTestServiceState) this.host.buildMinimalTestState();
    for (int pass = 0; pass < 2; pass++) {
        this.host.testStart(serviceCount);
        for (Service s : services) {
            final int finalPass = pass;
            Operation put = Operation
                    .createPatch(s.getUri())
                    .forceRemote()
                    .setBody(body)
                    .setCompletion((o, e) -> {
                        if (e != null) {
                            this.host.failIteration(e);
                            return;
                        }
                        if (finalPass == 1
                                && o.getStatusCode() != Operation.STATUS_CODE_NOT_MODIFIED) {
                            this.host.failIteration(new IllegalStateException(
                                    "Expected not modified status"));
                            return;
                        }
                        this.host.completeIteration();
                    });
            this.host.send(put);
        }
        this.host.testWait();
    }
}