### Question:
PropertySplitter { public Collection<Collection<String>> groupedList(String property) { if (property == null) { return new ArrayList<>(); } Collection<String> unGroupedList = this.list(property, "|"); Collection<Collection<String>> groupedList = new ArrayList<>(); for (String group : unGroupedList) { groupedList.add(this.list(group)); } return groupedList; }  Map<String, String> map(String property); Map<String, Collection<String>> mapOfList(String property); Collection<String> list(String property); Collection<Collection<String>> groupedList(String property);  }### Answer:
@Test public void testGroupedList() { Assert.assertEquals(0, propertySplitter.groupedList(null).size()); Assert.assertEquals(0, propertySplitter.groupedList("").size()); Assert.assertEquals(2, propertySplitter.groupedList("VALUE1.1,VALUE1.2|VALUE2.1,VALUE2.2") .size()); Assert.assertTrue(((List) (((List) propertySplitter .groupedList("VALUE1.1,VALUE1.2|VALUE2.1,VALUE2.2")).get(0))).contains("VALUE1.1")); Assert.assertTrue(((List) (((List) propertySplitter .groupedList("VALUE1.1,VALUE1.2|VALUE2.1,VALUE2.2")).get(0))).contains("VALUE1.1")); Assert.assertTrue(((List) (((List) propertySplitter .groupedList("VALUE1.1,VALUE1.2|VALUE2.1,VALUE2.2")).get(1))).contains("VALUE2.1")); Assert.assertTrue(((List) (((List) propertySplitter .groupedList("VALUE1.1,VALUE1.2|VALUE2.1,VALUE2.2")).get(1))).contains("VALUE2.2")); }