package org.test.revisionfilter.utils.impl;
import java.util.Set;
import org.revisionfilter.utils.rcs.impl.DiffEngine;
import junit.framework.TestCase;
public class DiffEngineTest extends TestCase
{
public void testNoDiffs()
{
// Single line
{
String testStr = "foo bar";
String testBaseStr = testStr;
Set<Integer> diffLines = DiffEngine.getDirtyLines(testStr, testBaseStr);
assertNotNull(diffLines);
assertEquals(0, diffLines.size());
}
// Multi line
{
String testStr = "foo \n bar";
String testBaseStr = testStr;
Set<Integer> diffLines = DiffEngine.getDirtyLines(testStr, testBaseStr);
assertNotNull(diffLines);
assertEquals(0, diffLines.size());
}
}
public void testDiffs()
{
// Single line
{
String testStr = "foo bar";
String testBaseStr = "foo foo";
Set<Integer> diffLines = DiffEngine.getDirtyLines(testStr, testBaseStr);
assertNotNull(diffLines);
assertEquals(1, diffLines.size());
assertTrue(diffLines.contains(Integer.valueOf(1)));
}
// Multi line
{
String testStr = "foo \n bar";
String testBaseStr = "foo \n foo";
Set<Integer> diffLines = DiffEngine.getDirtyLines(testStr, testBaseStr);
assertNotNull(diffLines);
assertEquals(1, diffLines.size());
assertTrue(diffLines.contains(Integer.valueOf(2)));
}
// Multi line diffs with multiline parts the same
{
String testStr = "foo foo \n " +
"bar foo bar \n" +
"foo foo foo \n" +
"bar bar bar";
String testBaseStr = "foo bar \n " +
"bar foo bar \n" +
"foo bar foo \n" +
"bar bar foo";
Set<Integer> diffLines = DiffEngine.getDirtyLines(testStr, testBaseStr);
assertNotNull(diffLines);
assertEquals(3, diffLines.size());
assertTrue(diffLines.contains(Integer.valueOf(1)));
assertTrue(diffLines.contains(Integer.valueOf(3)));
assertTrue(diffLines.contains(Integer.valueOf(4)));
}
}
}