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 3e08856..5b3fbf1 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 @@ -54,4 +54,27 @@ Assertions.assertIterableEquals(expected, actual); } + + @Test + public void splitByCurlyBracketTest() { + String testCode = "accounts.{accountId}.posts(posts: Map, post(title: Str, content: Str, likes: Int)) = insert(posts, postId, {\"title\": title, \"content\": content, \"likes\": likes})"; + Position startsAt = new Position(1, 1); + + Token token0 = new Token("accounts.", startsAt, false); + Token token1 = new Token("{", token0.getEndPos().move(0, 1), true); + Token token2 = new Token("accountId", token1.getEndPos().move(0, 1), false); + Token token3 = new Token("}", token2.getEndPos().move(0, 1), true); + Token token4 = new Token(".posts(posts: Map, post(title: Str, content: Str, likes: Int)) = insert(posts, postId, ", token3.getEndPos().move(0, 1), false); + Token token5 = new Token("{", token4.getEndPos().move(0, 1), true); + Token token6 = new Token("\"title\": title, \"content\": content, \"likes\": likes", token5.getEndPos().move(0, 1), false); + Token token7 = new Token("}", token6.getEndPos().move(0, 1), true); + Token token8 = new Token(")", token7.getEndPos().move(0, 1), false); + ArrayList expected = new ArrayList<>(List.of(token0, token1, token2, token3, token4, token5, token6, token7, token8)); + + ArrayList actual = new ArrayList<>(List.of(new Token(testCode, startsAt, false))); + actual = Tokenizer.splitBySymbol(actual, Tokens.LEFT_CURLY_BRACKET, Tokens.LEFT_CURLY_BRACKET_REGX); + actual = Tokenizer.splitBySymbol(actual, Tokens.RIGHT_CURLY_BRACKET, Tokens.RIGHT_CURLY_BRACKET_REGX); + + Assertions.assertIterableEquals(expected, actual); + } }