@Test
public void testPartialApplyForBadOps() throws Exception
{

    CuratorOp op1 = client.transactionOp().create().forPath("/test", "something".getBytes());
    CuratorOp op2 = client.transactionOp().create().forPath("/a/b/c");
    Migration m1 = () -> Collections.singletonList(op1);
    Migration m2 = () -> Collections.singletonList(op2);
    MigrationSet migrationSet = MigrationSet.build("1", Arrays.asList(m1, m2));
    try
    {
        complete(manager.migrate(migrationSet));
        Assert.fail("Should throw");
    }
    catch ( Throwable e )
    {
        Assert.assertTrue(Throwables.getRootCause(e) instanceof KeeperException.NoNodeException);
    }
    Assert.assertNull(client.unwrap().checkExists().forPath("/test"));  // should be all or nothing
}