@Test public void testBaselineNewAddition() { // dep1, dep2, dep3 are not deployed - hence, we should deploy the baseline we find in the source Change srcB = new ChangeIncremental(tableChangeType, "schema", "tabB", "bas1", 0, "chng1", CONTENT) .withBaselines(Lists.mutable.with("ch1", "ch2", "ch3")); Change src4 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch4", 1, "chng1", CONTENT); ListIterable<ChangeCommand> changeset = cmdCalc.calculateCommands(tableChangeType, Lists.mutable.of( new ChangePair(srcB, null) , new ChangePair(src4, null) ), unusedChangesArg, false); assertEquals(2, changeset.size()); Verify.assertAnySatisfy(changeset, assertValue(DeployChangeCommand.class, srcB)); Verify.assertAnySatisfy(changeset, assertValue(DeployChangeCommand.class, src4)); }
@Test public void testBaselineException() { // In this use case, srcB is the baseline change w/ ch1 ch2 ch3 marked. However, we only see ch1 and ch2 deployed, so we throw an exception Change dep1 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch1", 0, "chng1", CONTENT); Change dep2 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch2", 0, "chng1", CONTENT); // hiding dep3 as to show the exception use case //Change dep3 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch3", 0, "chng1", CONTENT); Change srcB = new ChangeIncremental(tableChangeType, "schema", "tabB", "bas1", 0, "chng1", CONTENT) .withBaselines(Lists.mutable.with("ch1", "ch2", "ch3")); Change src4 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch4", 1, "chng1", CONTENT); ListIterable<ChangeCommand> changeset = cmdCalc.calculateCommands(tableChangeType, Lists.mutable.of( new ChangePair(srcB, null) , new ChangePair(src4, null) , new ChangePair(null, dep1) , new ChangePair(null, dep2) ), unusedChangesArg, false); assertEquals(2, changeset.size()); Verify.assertAnySatisfy(changeset, assertValue(DeployChangeCommand.class, src4)); Predicate<ChangeCommand> baselineWarningPredicate = assertValue(IncompleteBaselineWarning.class, srcB); Verify.assertAnySatisfy(changeset, baselineWarningPredicate); IncompleteBaselineWarning baselineWarning = (IncompleteBaselineWarning) changeset.detect(baselineWarningPredicate); assertEquals(Sets.mutable.with("ch3"), baselineWarning.getNonDeployedChanges()); }
@Test public void testBaseline() { Change dep1 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch1", 0, "chng1", CONTENT); Change dep2 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch2", 0, "chng1", CONTENT); Change dep3 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch3", 0, "chng1", CONTENT); Change srcB = new ChangeIncremental(tableChangeType, "schema", "tabB", "bas1", 0, "chng1", CONTENT) .withBaselines(Lists.mutable.with("ch1", "ch2", "ch3")); Change src4 = new ChangeIncremental(tableChangeType, "schema", "tabB", "ch4", 1, "chng1", CONTENT); ListIterable<ChangeCommand> changeset = cmdCalc.calculateCommands(tableChangeType, Lists.mutable.of( new ChangePair(srcB, null) , new ChangePair(src4, null) , new ChangePair(null, dep1) , new ChangePair(null, dep2) , new ChangePair(null, dep3) ), unusedChangesArg, false); assertEquals(2, changeset.size()); Verify.assertAnySatisfy(changeset, assertValue(DeployChangeCommand.class, src4)); Predicate<ChangeCommand> baselineCommandPredicate = assertValue(BaselineChangeCommand.class, srcB); Verify.assertAnySatisfy(changeset, baselineCommandPredicate); BaselineChangeCommand baselineCommand = (BaselineChangeCommand) changeset.detect(baselineCommandPredicate); assertEquals(Sets.mutable.with(dep1, dep2, dep3), baselineCommand.getReplacedChanges().toSet()); }