/*
* ====================================================================
* Copyright (c) 2005-2012 sventon project. All rights reserved.
*
* This software is licensed as described in the file LICENSE, which
* you should have received as part of this distribution. The terms
* are also available at http://www.sventon.org.
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
* ====================================================================
*/
package org.sventon.diff;
import org.junit.Test;
import org.sventon.model.DiffAction;
import java.util.Iterator;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import static org.sventon.diff.DiffSegment.Side.LEFT;
import static org.sventon.diff.DiffSegment.Side.RIGHT;
public class DiffResultParserTest {
@Test
public void testDiffHelperDelete() throws Exception {
String result = "2,3d2\n<OneMore=2";
Iterator<DiffSegment> diffSegments = DiffResultParser.parseNormalDiffResult(result).iterator();
DiffSegment diffSegment = diffSegments.next();
assertSame(DiffAction.DELETED, diffSegment.getAction());
assertEquals(2, diffSegment.getLineIntervalStart(LEFT));
assertEquals(3, diffSegment.getLineIntervalEnd(LEFT));
assertEquals(2, diffSegment.getLineIntervalStart(RIGHT));
assertEquals(2, diffSegment.getLineIntervalEnd(RIGHT));
assertEquals("DiffSegment: DELETED, left: 2-3, right: 2-2", diffSegment.toString());
}
@Test
public void testDiffHelperDeleteII() throws Exception {
String result = "10d10\n<OneMore=2";
Iterator<DiffSegment> actions = DiffResultParser.parseNormalDiffResult(result).iterator();
DiffSegment action = actions.next();
assertSame(DiffAction.DELETED, action.getAction());
assertEquals(10, action.getLineIntervalStart(LEFT));
assertEquals(10, action.getLineIntervalEnd(LEFT));
assertEquals(10, action.getLineIntervalStart(RIGHT));
assertEquals(10, action.getLineIntervalEnd(RIGHT));
assertEquals("DiffSegment: DELETED, left: 10-10, right: 10-10", action.toString());
}
@Test
public void testDiffHelperAdd() throws Exception {
String result = "9a10,11\n>OneMore=1\n>OneMore=2\n>OneMore=3";
Iterator<DiffSegment> actions = DiffResultParser.parseNormalDiffResult(result).iterator();
DiffSegment action = actions.next();
assertSame(DiffAction.ADDED, action.getAction());
assertEquals(9, action.getLineIntervalStart(LEFT));
assertEquals(9, action.getLineIntervalEnd(LEFT));
assertEquals(10, action.getLineIntervalStart(RIGHT));
assertEquals(11, action.getLineIntervalEnd(RIGHT));
assertEquals("DiffSegment: ADDED, left: 9-9, right: 10-11", action.toString());
}
@Test
public void testDiffHelperChange() throws Exception {
String result = "2c2\n<IconIndex=-2388\n---\n>IconIndex=-238";
Iterator<DiffSegment> actions = DiffResultParser.parseNormalDiffResult(result).iterator();
DiffSegment action = actions.next();
assertSame(DiffAction.CHANGED, action.getAction());
assertEquals(2, action.getLineIntervalStart(LEFT));
assertEquals(2, action.getLineIntervalEnd(LEFT));
assertEquals(2, action.getLineIntervalStart(RIGHT));
assertEquals(2, action.getLineIntervalEnd(RIGHT));
assertEquals("DiffSegment: CHANGED, left: 2-2, right: 2-2", action.toString());
}
@Test
public void testDiffHelperChangeII() throws Exception {
String result =
"10,12c3,4\n" +
"< * $HeadURL$\n" +
"< * $URL$\n" +
"< * $Id$";
Iterator<DiffSegment> actions = DiffResultParser.parseNormalDiffResult(result).iterator();
DiffSegment action = actions.next();
assertSame(DiffAction.CHANGED, action.getAction());
assertEquals(10, action.getLineIntervalStart(LEFT));
assertEquals(12, action.getLineIntervalEnd(LEFT));
assertEquals(3, action.getLineIntervalStart(RIGHT));
assertEquals(4, action.getLineIntervalEnd(RIGHT));
assertEquals("DiffSegment: CHANGED, left: 10-12, right: 3-4", action.toString());
}
@Test
public void testDiffHelperAddAndChange() throws Exception {
String result = "2c2\n<IconIndex=-2388\n---\n>IconIndex=-238\n8a8,9\n>OneMore=true\n>";
Iterator<DiffSegment> actions = DiffResultParser.parseNormalDiffResult(result).iterator();
DiffSegment action = actions.next();
assertSame(DiffAction.CHANGED, action.getAction());
assertEquals(2, action.getLineIntervalStart(LEFT));
assertEquals(2, action.getLineIntervalEnd(LEFT));
assertEquals(2, action.getLineIntervalStart(RIGHT));
assertEquals(2, action.getLineIntervalEnd(RIGHT));
assertEquals("DiffSegment: CHANGED, left: 2-2, right: 2-2", action.toString());
action = actions.next();
assertSame(DiffAction.ADDED, action.getAction());
assertEquals(8, action.getLineIntervalStart(LEFT));
assertEquals(8, action.getLineIntervalEnd(LEFT));
assertEquals(8, action.getLineIntervalStart(RIGHT));
assertEquals(9, action.getLineIntervalEnd(RIGHT));
assertEquals("DiffSegment: ADDED, left: 8-8, right: 8-9", action.toString());
}
}