Skip to content

Commit

Permalink
0005585: Added test for overlapping trigger names
Browse files Browse the repository at this point in the history
  • Loading branch information
evan-miller-jumpmind committed Nov 15, 2022
1 parent 34aae0f commit 6b403e0
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
Expand Up @@ -35,8 +35,10 @@
import org.jumpmind.symmetric.common.ParameterConstants;
import org.jumpmind.symmetric.db.ISymmetricDialect;
import org.jumpmind.symmetric.model.Node;
import org.jumpmind.symmetric.model.NodeGroupLink;
import org.jumpmind.symmetric.model.Router;
import org.jumpmind.symmetric.model.Trigger;
import org.jumpmind.symmetric.model.TriggerHistory;
import org.jumpmind.symmetric.model.TriggerRouter;
import org.jumpmind.symmetric.service.IParameterService;
import org.jumpmind.symmetric.service.ITriggerRouterService;
Expand Down Expand Up @@ -344,6 +346,45 @@ public void test13BinaryColumnTypesForDerby() {
}
}

@Test
public void test14OverlappingTriggerIds() {
ITriggerRouterService service = getTriggerRouterService();
TriggerRouter trouter = new TriggerRouter();
Trigger trigger = trouter.getTrigger();
trigger.setTriggerId("test_overlap");
trigger.setSourceTableName("test_overlap");
trigger.setChannelId(TestConstants.TEST_CHANNEL_ID);
Router router = trouter.getRouter();
NodeGroupLink groupLink = new NodeGroupLink(TestConstants.TEST_ROOT_NODE_GROUP,
TestConstants.TEST_ROOT_NODE_GROUP);
router.setNodeGroupLink(groupLink);
service.saveTriggerRouter(trouter);
trigger.setTriggerId("tst_overlap");
trigger.setSourceTableName("tst_overlap");
service.saveTriggerRouter(trouter);
service.syncTriggers();
Assert.assertEquals("Some triggers must have failed to build.", 0, service.getFailedTriggers().size());
TriggerHistory history0 = null;
TriggerHistory history1 = null;
boolean foundHistories = false;
for (TriggerHistory history : service.getActiveTriggerHistories()) {
if (history.getTriggerId().equals("test_overlap")) {
history0 = history;
} else if (history.getTriggerId().equals("tst_overlap")) {
history1 = history;
}
if (history0 != null && history1 != null) {
foundHistories = true;
break;
}
}
Assert.assertTrue("Missing rows in sym_trigger_hist.", foundHistories);
Assert.assertTrue("Trigger names are not unique.",
!history0.getNameForInsertTrigger().equals(history1.getNameForInsertTrigger())
&& !history0.getNameForUpdateTrigger().equals(history1.getNameForUpdateTrigger())
&& !history0.getNameForDeleteTrigger().equals(history1.getNameForDeleteTrigger()));
}

protected static int[] filterTypes(int[] types, ISymmetricDialect dbDialect) {
boolean isBooleanSupported = isBooleanSupported(dbDialect);
int[] filteredTypes = new int[types.length];
Expand Down
8 changes: 8 additions & 0 deletions symmetric-core/src/test/resources/test-schema.xml
Expand Up @@ -55,6 +55,14 @@
<column name="decimal_value" type="DECIMAL" />
</table>

<table name="test_overlap">
<column name="id" type="INTEGER" required="true" primaryKey="true" />
</table>

<table name="tst_overlap">
<column name="id" type="INTEGER" required="true" primaryKey="true" />
</table>

<table name="test_dataloader_table">
<column name="string_value" type="VARCHAR" size="50" />
<column name="string_required_value" type="VARCHAR" size="50"
Expand Down

0 comments on commit 6b403e0

Please sign in to comment.