package org.eclipse.gmf.tests.tr;
import junit.framework.TestCase;
import org.eclipse.gmf.internal.common.codegen.TaggedTextMerger;
/**
* @author dstadnik
*/
public abstract class TaggedTextMergerTest extends TestCase {
public TaggedTextMergerTest(String name) {
super(name);
}
protected abstract TaggedTextMerger getTextMerger();
protected abstract String getOldHeader();
protected abstract String getOldPart1();
protected abstract String getOldTail();
protected abstract String getNewHeader();
protected abstract String getNewPart1();
protected abstract String getNewTail();
protected abstract String getRegion1();
protected abstract String getRegion2();
public void testOneRegionMerge() throws Exception {
TaggedTextMerger merger = getTextMerger();
String oldText = getOldHeader() + merger.getBeginTag() + getRegion1() + merger.getEndTag() + getOldTail();
String newText = getNewHeader() + merger.getBeginTag() + merger.getEndTag() + getNewTail();
String mergedText = merger.process(oldText, newText);
String expectedText = getNewHeader() + merger.getBeginTag() + getRegion1() + merger.getEndTag() + getNewTail();
assertEquals(mergedText, expectedText);
}
public void testTwoRegionsMerge() throws Exception {
TaggedTextMerger merger = getTextMerger();
String oldText = getOldHeader() + merger.getBeginTag() + getRegion1() + merger.getEndTag() + getOldPart1() + merger.getBeginTag() + getRegion2() + merger.getEndTag() + getOldTail();
String newText = getNewHeader() + getNewPart1() + merger.getBeginTag() + merger.getEndTag() + getNewTail();
String mergedText = merger.process(oldText, newText);
String expectedText = getNewHeader() + getNewPart1() + merger.getBeginTag() + getRegion1() + getRegion2() + merger.getEndTag() + getNewTail();
assertEquals(mergedText, expectedText);
}
public void testIdentityMerge() throws Exception {
TaggedTextMerger merger = getTextMerger();
String newText = getNewHeader() + getNewPart1() + merger.getBeginTag() + merger.getEndTag() + getNewTail();
String mergedText = merger.process(newText, newText);
assertEquals(mergedText, newText);
}
public void testAnchorTextPreservation() throws Exception {
TaggedTextMerger merger = getTextMerger();
String oldText = getOldHeader() + getOldTail();
String newText = getNewHeader() + merger.getBeginTag() + "\n" + merger.getEndTag() + getNewTail();
String mergedText = merger.process(oldText, newText);
assertEquals(mergedText, newText);
}
}