Skip to content

Commit

Permalink
[fix] 쿼리 파서 파싱 로직이 빈 문자열을 무시하도록 수정 (#32)
Browse files Browse the repository at this point in the history
  • Loading branch information
blaxsior committed Aug 6, 2024
1 parent d02356f commit dfb7e09
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public static Map<String, String> parse(String searchQuery) {
String[] queries = searchQuery.split(",");

for (String query : queries) {
if (query.isBlank()) continue;
String[] pair = query.split(":");
if(pair.length <= 0 || pair.length > 2) continue; // 값이 없거나 넘치면 무시.
String key = pair[0].trim();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package hyundai.softeer.orange.event.common.component.query;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

import java.util.Map;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;

class EventSearchQueryParserTest {
@DisplayName("query parser이 정상적으로 동작하는지 검사")
@Test
public void testParser() {
// 1. key:value,key:value,key 형식으로 표현됨
// 2. :으로 구분되는 부분은 1개 또는 2개여야 함.

String searchQuery = "test1:value1,, \t\n,hello,test2:value2,wrong:a:b";

Map<String, String> parsed = EventSearchQueryParser.parse(searchQuery);
assertThat(parsed).hasSize(3);
assertThat(parsed.get("test1")).isEqualTo("value1");
assertThat(parsed.get("test2")).isEqualTo("value2");
assertThat(parsed.get("hello")).isEqualTo("");
}
}

0 comments on commit dfb7e09

Please sign in to comment.