blob: 62ecaae6ed7a5e65b8b32c4110fcbfe08534151e [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2018 TypeFox and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
******************************************************************************/
package org.eclipse.lsp4j.test.util;
import org.eclipse.lsp4j.Position;
import org.eclipse.lsp4j.Range;
import org.eclipse.lsp4j.util.Ranges;
import org.junit.Assert;
import org.junit.Test;
public class RangesTest {
@Test(expected = NullPointerException.class)
public void containsRange_nullBigger() {
Ranges.containsRange(null, newRange(0, 0, 1, 1));
}
@Test(expected = NullPointerException.class)
public void containsRange_nullSmaller() {
Ranges.containsRange(newRange(0, 0, 1, 1), null);
}
@Test
public void containsRange_beforeAbove() {
Assert.assertFalse(Ranges.containsRange(newRange(2, 2, 3, 3), newRange(0, 0, 1, 1)));
}
@Test
public void containsRange_beforeSameLine() {
Assert.assertFalse(Ranges.containsRange(newRange(1, 2, 3, 3), newRange(0, 0, 1, 1)));
}
@Test
public void containsRange_beforeIntersects() {
Assert.assertFalse(Ranges.containsRange(newRange(1, 2, 3, 3), newRange(0, 0, 1, 3)));
}
@Test
public void containsRange_same() {
Assert.assertTrue(Ranges.containsRange(newRange(0, 0, 1, 3), newRange(0, 0, 1, 3)));
}
@Test
public void containsRange_equals() {
Range range = newRange(0, 0, 1, 3);
Assert.assertTrue(Ranges.containsRange(range, range));
}
@Test
public void containsRange_inside() {
Assert.assertTrue(Ranges.containsRange(newRange(0, 0, 3, 3), newRange(1, 1, 2, 2)));
}
@Test
public void containsRange_afterBelow() {
Assert.assertFalse(Ranges.containsRange(newRange(2, 2, 3, 3), newRange(4, 4, 5, 5)));
}
@Test
public void containsRange_afterSameLine() {
Assert.assertFalse(Ranges.containsRange(newRange(2, 2, 3, 3), newRange(3, 4, 5, 5)));
}
@Test
public void containsRange_afterIntersects() {
Assert.assertFalse(Ranges.containsRange(newRange(2, 2, 3, 3), newRange(3, 1, 5, 5)));
}
@Test
public void containsRange_overlaps() {
Assert.assertFalse(Ranges.containsRange(newRange(2, 2, 3, 3), newRange(1, 1, 5, 5)));
}
@Test(expected = NullPointerException.class)
public void containsPosition_nullRange() {
Ranges.containsPosition(null, new Position(0, 0));
}
@Test(expected = NullPointerException.class)
public void containsPosition_nullPosition() {
Ranges.containsPosition(newRange(0, 0, 1, 1), null);
}
@Test
public void containsPosition_beforeAbove() {
Assert.assertFalse(Ranges.containsPosition(newRange(1, 1, 2, 2), new Position(0, 1)));
}
@Test
public void containsPosition_beforeSameLine() {
Assert.assertFalse(Ranges.containsPosition(newRange(1, 3, 2, 2), new Position(1, 2)));
}
@Test
public void containsPosition_leftBorder() {
Assert.assertTrue(Ranges.containsPosition(newRange(1, 3, 2, 2), new Position(1, 3)));
}
@Test
public void containsPosition_inside() {
Assert.assertTrue(Ranges.containsPosition(newRange(1, 3, 2, 2), new Position(1, 4)));
}
@Test
public void containsPosition_rightBorder() {
Assert.assertTrue(Ranges.containsPosition(newRange(1, 3, 2, 2), new Position(2, 2)));
}
@Test
public void containsPosition_afterSameLine() {
Assert.assertFalse(Ranges.containsPosition(newRange(1, 1, 2, 2), new Position(2, 4)));
}
@Test
public void containsPosition_afterBelow() {
Assert.assertFalse(Ranges.containsPosition(newRange(1, 3, 2, 2), new Position(3, 3)));
}
private static Range newRange(int startLine, int startCharacter, int endLine, int endCharacter) {
return new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter));
}
}