blob: db06caf9143239fa7b01667b27feb0c2fce0aec0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2021 Christian Pontesegger and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License_Identifier: EPL-2.0
*
* Contributors:
* Christian Pontesegger - initial API and implementation
*******************************************************************************/
package org.eclipse.ease.ui.completion.tokenizer;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class BracketMatcherTest {
@Test
@DisplayName("getBrackets() is empty for 'some text'")
public void getBrackets_is_empty() {
assertTrue(new BracketMatcher("some text").getBrackets().isEmpty());
}
@Test
@DisplayName("getBrackets() detects 'single()'")
public void getBrackets_detects_1() {
assertArrayEquals(new Object[] { new Bracket(6, 7) }, new BracketMatcher("single()").getBrackets().toArray());
}
@Test
@DisplayName("getBrackets() detects 'single().inText'")
public void getBrackets_detects_2() {
assertArrayEquals(new Object[] { new Bracket(6, 7) }, new BracketMatcher("single().inText").getBrackets().toArray());
}
@Test
@DisplayName("getBrackets() detects 'one().two().three'")
public void getBrackets_detects_3() {
assertArrayEquals(new Object[] { new Bracket(9, 10), new Bracket(3, 4) }, new BracketMatcher("one().two().three").getBrackets().toArray());
}
@Test
@DisplayName("getBrackets() detects 'outer(inner())'")
public void getBrackets_detects_nested() {
assertArrayEquals(new Object[] { new Bracket(11, 12), new Bracket(5, 13) }, new BracketMatcher("outer(inner())").getBrackets().toArray());
}
@Test
@DisplayName("getBrackets() detects 'outer(inner('")
public void getBrackets_detects_open_brackets() {
assertArrayEquals(new Object[] { new Bracket(11, -1), new Bracket(5, -1) }, new BracketMatcher("outer(inner(").getBrackets().toArray());
}
@Test
@DisplayName("hasOpenBrackets() = false for 'outer(inner())'")
public void hasOpenBrackets_equals_false() {
assertFalse(new BracketMatcher("outer(inner())").hasOpenBrackets());
}
@Test
@DisplayName("hasOpenBrackets() = true for 'outer(inner(), text()'")
public void hasOpenBrackets_equals_true() {
assertTrue(new BracketMatcher("outer(inner(), text()").hasOpenBrackets());
}
@Test
@DisplayName("getOpenBrackets() detects 'outer(inner(), text('")
public void getOpenBrackets_returns_open_brackets_only() {
assertArrayEquals(new Object[] { new Bracket(19, -1), new Bracket(5, -1) }, new BracketMatcher("outer(inner(), text(").getOpenBrackets().toArray());
}
}