diff --git a/LanguageServer/src/test/java/org/nittalab/dtram/languageserver/utils/TokenizerTest.java b/LanguageServer/src/test/java/org/nittalab/dtram/languageserver/utils/TokenizerTest.java index a0a21bb..3e08856 100644 --- a/LanguageServer/src/test/java/org/nittalab/dtram/languageserver/utils/TokenizerTest.java +++ b/LanguageServer/src/test/java/org/nittalab/dtram/languageserver/utils/TokenizerTest.java @@ -1,13 +1,17 @@ package org.nittalab.dtram.languageserver.utils; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.nittalab.dtram.languageserver.model.Position; import org.nittalab.dtram.languageserver.model.Token; +import org.nittalab.dtram.languageserver.model.Tokens; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; @@ -23,9 +27,31 @@ Tokenizer tokenizer = new Tokenizer(reader); List tokens = tokenizer.execute(); - tokens.forEach(System.out::println); +// tokens.forEach(System.out::println); } catch (IOException e) { logger.severe(e.getMessage()); } } + + @Test + public void splitByBracketTest() { + String testCode = "accounts.{accountId}.name(name: Str, changeName(name: Str)) = name"; + Position startsAt = new Position(1, 1); + + Token token0 = new Token("accounts.{accountId}.name", startsAt, false); + Token token1 = new Token("(", token0.getEndPos().move(0, 1), true); + Token token2 = new Token("name: Str, changeName", token1.getEndPos().move(0, 1), false); + Token token3 = new Token("(", token2.getEndPos().move(0, 1), true); + Token token4 = new Token("name: Str", token3.getEndPos().move(0, 1), false); + Token token5 = new Token(")", token4.getEndPos().move(0, 1), true); + Token token6 = new Token(")", token5.getEndPos().move(0, 1), true); + Token token7 = new Token(" = name", token6.getEndPos().move(0, 1), false); + ArrayList expected = new ArrayList<>(List.of(token0, token1, token2, token3, token4, token5, token6, token7)); + + ArrayList actual = new ArrayList<>(List.of(new Token(testCode, startsAt, false))); + actual = Tokenizer.splitBySymbol(actual, Tokens.LEFT_BRACKET, Tokens.LEFT_BRACKET_REGX); + actual = Tokenizer.splitBySymbol(actual, Tokens.RIGHT_BRACKET, Tokens.RIGHT_BRACKET_REGX); + + Assertions.assertIterableEquals(expected, actual); + } }