### Question:
DMNParseServiceImpl implements DMNParseService { @Override public List<String> parseFEELList(final String source) { return parse(source) .map(this::getTextElements) .orElseGet(ArrayList::new); }  @Override List<String> parseFEELList(final String source); @Override RangeValue parseRangeValue(final String source);  }### Answer:
@Test public void testParseFEELListMultipleCommasInside() { final List<String> actualList = service.parseFEELList("\"Sao Paulo, SP, South America\",\"New York, NY, North America\""); final List<String> expectedList = asList("\"Sao Paulo, SP, South America\"", "\"New York, NY, North America\""); assertEquals(expectedList, actualList); }
@Test public void testParseFEELListWithARegularNumberList() { final List<String> actualList = service.parseFEELList("1, 2, 3"); final List<String> expectedList = asList("1", "2", "3"); assertEquals(expectedList, actualList); }
@Test public void testParseFEELListWithARegularStringList() { final List<String> actualList = service.parseFEELList("\"Sao Paulo, SP\", \"Campinas, SP\", \"Rio de Janeiro, RJ\""); final List<String> expectedList = asList("\"Sao Paulo, SP\"", "\"Campinas, SP\"", "\"Rio de Janeiro, RJ\""); assertEquals(expectedList, actualList); }
@Test public void testParseFEELListWithAnArbitraryValue() { final List<String> actualList = service.parseFEELList("aaabbbcccdddeee"); final List<String> expectedList = singletonList("aaabbbcccdddeee"); assertEquals(expectedList, actualList); }
@Test public void testParseFEELListWithASemicolon() { final List<String> actualList = service.parseFEELList("abcdef, \"Sao Paulo, SP\"; 123"); final List<String> expectedList = asList("abcdef", "\"Sao Paulo, SP\""); assertEquals(expectedList, actualList); }
@Test public void testParseFEELListWithASpecialCharacter() { final List<String> actualList = service.parseFEELList("%20C"); final List<String> expectedList = emptyList(); assertEquals(expectedList, actualList); }