You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2017/07/18 13:16:28 UTC
[06/23] curator git commit: more testing
more testing
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/bc7bf4ac
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/bc7bf4ac
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/bc7bf4ac
Branch: refs/heads/master
Commit: bc7bf4ace6dcc186352f1c3731e1cae69cef2e1f
Parents: c3adc95
Author: randgalt <ra...@apache.org>
Authored: Fri Jul 14 10:08:04 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Fri Jul 14 10:08:04 2017 -0500
----------------------------------------------------------------------
.../modeled/migrations/MigrationManager.java | 4 +-
.../migrations/TestMigrationManager.java | 58 ++++++++++++++++----
2 files changed, 49 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/bc7bf4ac/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/migrations/MigrationManager.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/migrations/MigrationManager.java b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/migrations/MigrationManager.java
index e59b7bf..bfb9707 100644
--- a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/migrations/MigrationManager.java
+++ b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/migrations/MigrationManager.java
@@ -79,7 +79,7 @@ public class MigrationManager
{
if ( sortedMetaData.size() > set.migrations().size() )
{
- throw new MigrationException(set.id(), String.format("More metadata than migrations. Migration ID: %s - MetaData: %s", set.id(), sortedMetaData));
+ throw new MigrationException(set.id(), String.format("More metadata than migrations. Migration ID: %s - MigrationSet: %s - MetaData: %s", set.id(), set.migrations(), sortedMetaData));
}
int compareSize = Math.min(set.migrations().size(), sortedMetaData.size());
@@ -89,7 +89,7 @@ public class MigrationManager
.collect(Collectors.toList());
if ( !compareMigrations.equals(sortedMetaData) )
{
- throw new MigrationException(set.id(), String.format("Metadata mismatch. Migration ID: %s - MetaData: %s", set.id(), sortedMetaData));
+ throw new MigrationException(set.id(), String.format("Metadata mismatch. Migration ID: %s - MigrationSet: %s - MetaData: %s", set.id(), set.migrations(), sortedMetaData));
}
return set.migrations().subList(sortedMetaData.size(), set.migrations().size());
}
http://git-wip-us.apache.org/repos/asf/curator/blob/bc7bf4ac/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/migrations/TestMigrationManager.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/migrations/TestMigrationManager.java b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/migrations/TestMigrationManager.java
index 9fcd53c..3fe5de2 100644
--- a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/migrations/TestMigrationManager.java
+++ b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/migrations/TestMigrationManager.java
@@ -48,11 +48,15 @@ import java.util.function.UnaryOperator;
public class TestMigrationManager extends CompletableBaseClassForTests
{
private AsyncCuratorFramework client;
- private MigrationSet migrationSet;
private ModelSpec<ModelV1> v1Spec;
private ModelSpec<ModelV2> v2Spec;
private ModelSpec<ModelV3> v3Spec;
private ExecutorService executor;
+ private CuratorOp v1opA;
+ private CuratorOp v1opB;
+ private CuratorOp v2op;
+ private CuratorOp v3op;
+ private MigrationManager manager;
@BeforeMethod
@Override
@@ -99,17 +103,13 @@ public class TestMigrationManager extends CompletableBaseClassForTests
v2Spec = ModelSpec.builder(modelPath, JacksonModelSerializer.build(ModelV2.class)).build();
v3Spec = ModelSpec.builder(modelPath, JacksonModelSerializer.build(ModelV3.class)).build();
- CuratorOp v1opA = client.unwrap().transactionOp().create().forPath(v1Spec.path().parent().fullPath());
- CuratorOp v1opB = ModeledFramework.wrap(client, v1Spec).createOp(new ModelV1("Test"));
- CuratorOp v2op = ModeledFramework.wrap(client, v2Spec).updateOp(new ModelV2("Test 2", 10));
- CuratorOp v3op = ModeledFramework.wrap(client, v3Spec).updateOp(new ModelV3("One", "Two", 30));
-
- Migration m1 = Migration.build("1",1, () -> Arrays.asList(v1opA, v1opB));
- Migration m2 = Migration.build("2",1, () -> Collections.singletonList(v2op));
- Migration m3 = Migration.build("3",1, () -> Collections.singletonList(v3op));
- migrationSet = MigrationSet.build("1", ZPath.parse("/metadata"), Arrays.asList(m1, m2, m3));
+ v1opA = client.unwrap().transactionOp().create().forPath(v1Spec.path().parent().fullPath());
+ v1opB = ModeledFramework.wrap(client, v1Spec).createOp(new ModelV1("Test"));
+ v2op = ModeledFramework.wrap(client, v2Spec).updateOp(new ModelV2("Test 2", 10));
+ v3op = ModeledFramework.wrap(client, v3Spec).updateOp(new ModelV3("One", "Two", 30));
executor = Executors.newCachedThreadPool();
+ manager = new MigrationManager(client, ZPath.parse("/locks"), JacksonModelSerializer.build(MetaData.class), executor, Duration.ofMinutes(10));
}
@AfterMethod
@@ -124,7 +124,43 @@ public class TestMigrationManager extends CompletableBaseClassForTests
@Test
public void testBasic() throws Exception
{
- MigrationManager manager = new MigrationManager(client, ZPath.parse("/locks"), JacksonModelSerializer.build(MetaData.class), executor, Duration.ofMinutes(10));
+ Migration m1 = Migration.build("1",1, () -> Arrays.asList(v1opA, v1opB));
+ Migration m2 = Migration.build("2",1, () -> Collections.singletonList(v2op));
+ Migration m3 = Migration.build("3",1, () -> Collections.singletonList(v3op));
+ MigrationSet migrationSet = MigrationSet.build("1", ZPath.parse("/metadata"), Arrays.asList(m1, m2, m3));
+
+ complete(manager.migrate(migrationSet));
+
+ ModeledFramework<ModelV3> v3Client = ModeledFramework.wrap(client, v3Spec);
+ complete(v3Client.read(), (m, e) -> {
+ Assert.assertEquals(m.getAge(), 30);
+ Assert.assertEquals(m.getFirstName(), "One");
+ Assert.assertEquals(m.getLastName(), "Two");
+ });
+ }
+
+ @Test
+ public void testStaged() throws Exception
+ {
+ Migration m1 = Migration.build("1",1, () -> Arrays.asList(v1opA, v1opB));
+ MigrationSet migrationSet = MigrationSet.build("1", ZPath.parse("/metadata"), Collections.singletonList(m1));
+ complete(manager.migrate(migrationSet));
+
+ ModeledFramework<ModelV1> v1Client = ModeledFramework.wrap(client, v1Spec);
+ complete(v1Client.read(), (m, e) -> Assert.assertEquals(m.getName(), "Test"));
+
+ Migration m2 = Migration.build("2",1, () -> Collections.singletonList(v2op));
+ migrationSet = MigrationSet.build("1", ZPath.parse("/metadata"), Arrays.asList(m1, m2));
+ complete(manager.migrate(migrationSet));
+
+ ModeledFramework<ModelV2> v2Client = ModeledFramework.wrap(client, v2Spec);
+ complete(v2Client.read(), (m, e) -> {
+ Assert.assertEquals(m.getName(), "Test 2");
+ Assert.assertEquals(m.getAge(), 10);
+ });
+
+ Migration m3 = Migration.build("3",1, () -> Collections.singletonList(v3op));
+ migrationSet = MigrationSet.build("1", ZPath.parse("/metadata"), Arrays.asList(m1, m2, m3));
complete(manager.migrate(migrationSet));
ModeledFramework<ModelV3> v3Client = ModeledFramework.wrap(client, v3Spec);