X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-base%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fbase%2FPfObjectFilterTest.java;h=68cae439dcced918c42197af30e3d448a008ab99;hb=ec488290e3aa12cc7fcdf44cc7744bceae89af7f;hp=c3ccb4aa5895db96dbd5bae19989ec196b85debd;hpb=82699a970d5f06c6dc1391d8beb0efe76bf84089;p=policy%2Fmodels.git diff --git a/models-base/src/test/java/org/onap/policy/models/base/PfObjectFilterTest.java b/models-base/src/test/java/org/onap/policy/models/base/PfObjectFilterTest.java index c3ccb4aa5..68cae439d 100644 --- a/models-base/src/test/java/org/onap/policy/models/base/PfObjectFilterTest.java +++ b/models-base/src/test/java/org/onap/policy/models/base/PfObjectFilterTest.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2020 Nordix Foundation. + * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,17 +21,18 @@ package org.onap.policy.models.base; -import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; - +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.function.Predicate; import org.junit.Test; - import org.onap.policy.models.base.testconcepts.DummyPfObject; +import org.onap.policy.models.base.testconcepts.DummyPfObjectComparator; import org.onap.policy.models.base.testconcepts.DummyPfObjectFilter; /** @@ -40,37 +42,44 @@ import org.onap.policy.models.base.testconcepts.DummyPfObjectFilter; */ public class PfObjectFilterTest { + private static final String NAME1 = "name1"; + private static final String NAME0 = "name0"; + private static final String HELLO = "Hello"; + private static final String DESCRIPTION1 = "Desc 1"; + private static final String VERSION100 = "1.0.0"; + private static final String VERSION002 = "0.0.2"; + @Test public void testPfObjectInterface() { DummyPfObject do0 = new DummyPfObject(); - do0.setName("name0"); - do0.setVersion("1.0.0"); + do0.setName(NAME0); + do0.setVersion(VERSION100); do0.setDescription("desc0 "); DummyPfObject do1 = new DummyPfObject(); - do1.setName("name0"); + do1.setName(NAME0); do1.setVersion("0.0.1"); - do1.setDescription("Desc 1"); + do1.setDescription(DESCRIPTION1); DummyPfObject do2 = new DummyPfObject(); - do2.setName("name0"); - do2.setVersion("0.0.2"); - do2.setDescription("Desc 1"); + do2.setName(NAME0); + do2.setVersion(VERSION002); + do2.setDescription(DESCRIPTION1); DummyPfObject do3 = new DummyPfObject(); - do3.setName("name1"); + do3.setName(NAME1); do3.setVersion("0.0.1"); do3.setDescription("desc0 "); DummyPfObject do4 = new DummyPfObject(); - do4.setName("name1"); + do4.setName(NAME1); do4.setVersion("0.1.2"); - do4.setDescription("Desc 1"); + do4.setDescription(DESCRIPTION1); DummyPfObject do5 = new DummyPfObject(); do5.setName("aaaaa"); - do5.setVersion("0.0.2"); - do5.setDescription("Desc 1"); + do5.setVersion(VERSION002); + do5.setDescription(DESCRIPTION1); List doList = new ArrayList<>(); doList.add(do0); @@ -81,28 +90,72 @@ public class PfObjectFilterTest { doList.add(do5); DummyPfObjectFilter dof = new DummyPfObjectFilter(); - assertFalse(dof.filterOnRegexp("Hello", "Goodbye")); - assertTrue(dof.filterOnRegexp("Hello", "Hello")); - - assertThatThrownBy(() -> { - dof.filterOnRegexp(null, null); - }).hasMessage("value is marked @NonNull but is null"); - - assertThatThrownBy(() -> { - dof.filterOnRegexp("hello", null); - }).hasMessage("regexp is marked @NonNull but is null"); + assertFalse(dof.filterString(HELLO, "Goodbye")); + assertTrue(dof.filterString(HELLO, HELLO)); - assertThatThrownBy(() -> { - dof.filterOnRegexp(null, "hello"); - }).hasMessage("value is marked @NonNull but is null"); + assertEquals(false, dof.filterString(HELLO, "Goodbye")); + assertEquals(true, dof.filterString(HELLO, HELLO)); + assertEquals(true, dof.filterString(HELLO, null)); - List latestVersionList = dof.latestVersionFilter(doList); + List latestVersionList = dof.latestVersionFilter(doList, new DummyPfObjectComparator()); assertEquals(3, latestVersionList.size()); assertEquals("aaaaa", latestVersionList.get(0).getName()); - assertEquals("0.0.2", latestVersionList.get(0).getVersion()); - assertEquals("name0", latestVersionList.get(1).getName()); - assertEquals("1.0.0", latestVersionList.get(1).getVersion()); - assertEquals("name1", latestVersionList.get(2).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 newestVersionList = dof.latestVersionFilter(latestVersionList, + new DummyPfObjectComparator()); + assertEquals(latestVersionList, newestVersionList); + + MyFilter filter = new MyFilter(); + + assertEquals(true, filter.filterString(null, HELLO)); + + DummyPfObject doNullVersion = new DummyPfObject(); + do5.setName("bbbbb"); + + assertEquals(false, filter(filter::filterStringPred, DummyPfObject::getVersion, doNullVersion, VERSION100)); + assertEquals(false, filter(filter::filterStringPred, DummyPfObject::getVersion, do0, "1")); + assertEquals(false, filter(filter::filterStringPred, DummyPfObject::getVersion, do0, "2.0.0")); + assertEquals(true, filter(filter::filterStringPred, DummyPfObject::getVersion, doNullVersion, null)); + assertEquals(true, filter(filter::filterStringPred, DummyPfObject::getVersion, do0, null)); + assertEquals(true, filter(filter::filterStringPred, DummyPfObject::getVersion, do0, VERSION100)); + + assertEquals(false, filter(filter::filterPrefixPred, DummyPfObject::getVersion, doNullVersion, "1.")); + assertEquals(false, filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1.1")); + assertEquals(false, filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1.1")); + assertEquals(false, filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "2")); + assertEquals(true, filter(filter::filterPrefixPred, DummyPfObject::getVersion, doNullVersion, null)); + assertEquals(true, filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, null)); + assertEquals(true, filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1.")); + assertEquals(true, filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, "1.0.")); + assertEquals(true, filter(filter::filterPrefixPred, DummyPfObject::getVersion, do0, VERSION100)); + + assertEquals(false, filter(filter::filterRegexpPred, DummyPfObject::getVersion, doNullVersion, "1[.].*")); + assertEquals(false, filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "2[.].*")); + assertEquals(true, filter(filter::filterRegexpPred, DummyPfObject::getVersion, doNullVersion, null)); + assertEquals(true, filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, null)); + assertEquals(true, filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1[.].*")); + assertEquals(true, filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1[.]0[.].*")); + assertEquals(true, filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1[.]0[.]0")); + assertEquals(true, filter(filter::filterRegexpPred, DummyPfObject::getVersion, do0, "1....")); + } + + private boolean filter(BiFunction, Predicate> predMaker, + Function extractor, DummyPfObject dpo, String text) { + Predicate pred = predMaker.apply(text, extractor); + return pred.test(dpo); + } + + private static class MyFilter implements PfObjectFilter { + @Override + public List filter(List originalList) { + return null; + } } }