+ DummyPfObjectFilter dof = new DummyPfObjectFilter();
+ assertFalse(dof.filterString(HELLO, "Goodbye"));
+ assertTrue(dof.filterString(HELLO, HELLO));
+
+ assertFalse(dof.filterString(HELLO, "Goodbye"));
+ assertTrue(dof.filterString(HELLO, HELLO));
+ assertTrue(dof.filterString(HELLO, null));
+
+ List<DummyPfObject> doList = getListPfObject();
+ List<DummyPfObject> latestVersionList = dof.latestVersionFilter(doList, new DummyPfObjectComparator());
+ assertEquals(3, latestVersionList.size());
+ assertEquals("aaaaa", latestVersionList.get(0).getName());
+ assertEquals(VERSION002, latestVersionList.get(0).getVersion());
+ assertEquals(NAME0, latestVersionList.get(1).getName());
+ assertEquals(VERSION100, latestVersionList.get(1).getVersion());
+ assertEquals(NAME1, latestVersionList.get(2).getName());
+ assertEquals("0.1.2", latestVersionList.get(2).getVersion());
+
+ latestVersionList.remove(2);
+ latestVersionList.remove(1);
+ List<DummyPfObject> newestVersionList = dof.latestVersionFilter(latestVersionList,
+ new DummyPfObjectComparator());
+ assertEquals(latestVersionList, newestVersionList);
+ }
+
+ @Test
+ public void testStringFilteredPfObjectInterface() {
+ List<DummyPfObject> doList = getListPfObject();
+ MyFilter filter = new MyFilter();
+
+ assertTrue(filter.filterString(null, HELLO));
+
+ DummyPfObject do0 = doList.get(0);
+ DummyPfObject do5 = doList.get(5);
+ DummyPfObject doNullVersion = new DummyPfObject();
+ do5.setName("bbbbb");
+
+ assertFalse(filter(filter::filterStringPred, DummyPfObject::getVersion, doNullVersion, VERSION100));
+ assertFalse(filter(filter::filterStringPred, DummyPfObject::getVersion, do0, "1"));
+ assertFalse(filter(filter::filterStringPred, DummyPfObject::getVersion, do0, "2.0.0"));
+ assertTrue(filter(filter::filterStringPred, DummyPfObject::getVersion, doNullVersion, null));
+ assertTrue(filter(filter::filterStringPred, DummyPfObject::getVersion, do0, null));
+ assertTrue(filter(filter::filterStringPred, DummyPfObject::getVersion, do0, VERSION100));
+ }
+
+ @Test
+ public void testPrefixFilteredPfObjectInterface() {
+
+ DummyPfObject doNullVersion = new DummyPfObject();
+ MyFilter filter = new MyFilter();
+
+ List<DummyPfObject> doList = getListPfObject();
+ DummyPfObject do0 = doList.get(0);
+
+ assertFalse(filter(filter::filterPrefixPred, DummyPfObject::getVersion, doNullVersion, "1."));
+ assertFalse(filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1.1"));
+ assertFalse(filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1.1"));
+ assertFalse(filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "2"));
+ assertTrue(filter(filter::filterPrefixPred, DummyPfObject::getVersion, doNullVersion, null));
+ assertTrue(filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, null));
+ assertTrue(filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1."));
+ assertTrue(filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1.0."));
+ assertTrue(filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, VERSION100));
+ }
+
+ @Test
+ public void testRegexFilteredPfObjectInterface() {
+ List<DummyPfObject> doList = getListPfObject();
+ DummyPfObject do0 = doList.get(0);
+
+ MyFilter filter = new MyFilter();
+ DummyPfObject doNullVersion = new DummyPfObject();
+
+ assertFalse(filter(filter::filterRegexpPred, DummyPfObject::getVersion, doNullVersion, "1[.].*"));
+ assertFalse(filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "2[.].*"));
+ assertTrue(filter(filter::filterRegexpPred, DummyPfObject::getVersion, doNullVersion, null));
+ assertTrue(filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, null));
+ assertTrue(filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1[.].*"));
+ assertTrue(filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1[.]0[.].*"));
+ assertTrue(filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1[.]0[.]0"));
+ assertTrue(filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1...."));
+ }
+
+ private List<DummyPfObject> getListPfObject() {