From 86374588a6103114b1f0f335a1b65da1ad0817a5 Mon Sep 17 00:00:00 2001 From: "ning.xi" Date: Thu, 26 Dec 2019 21:37:52 +0800 Subject: update Db provider to support query number Issue-ID: POLICY-1629 Signed-off-by: ning.xi Change-Id: I42c9542adc44d52b760a70e710ab4cc6fa8a1b3b --- .../models/provider/PolicyModelsProvider.java | 6 ++- .../impl/DatabasePolicyModelsProviderImpl.java | 5 +- .../impl/DummyPolicyModelsProviderImpl.java | 2 +- .../impl/DatabasePolicyModelsProviderTest.java | 58 ++++++++++++++-------- .../models/provider/impl/DummyBadProviderImpl.java | 4 +- 5 files changed, 48 insertions(+), 27 deletions(-) (limited to 'models-provider') diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java b/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java index 2e1c71426..767a0fb6f 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -364,11 +364,13 @@ public interface PolicyModelsProvider extends AutoCloseable { * @param pdpSubGroup pdpSubGroupType name to filter statistics * @param startTimeStamp startTimeStamp to filter statistics * @param endTimeStamp endTimeStamp to filter statistics + * @param sortOrder sortOrder to query database + * @param getRecordNum Total query count from database * @return the PDP statistics found * @throws PfModelException on errors getting policies */ public List getFilteredPdpStatistics(String name, @NonNull String pdpGroupName, String pdpSubGroup, - Date startTimeStamp, Date endTimeStamp) throws PfModelException; + Date startTimeStamp, Date endTimeStamp, String sortOrder, int getRecordNum) throws PfModelException; /** * Creates PDP statistics. diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java index d154910bb..08c01b68f 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java @@ -337,10 +337,11 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { @Override public List getFilteredPdpStatistics(final String name, @NonNull final String pdpGroupName, - final String pdpSubGroup, final Date startTimeStamp, final Date endTimeStamp) throws PfModelException { + final String pdpSubGroup, final Date startTimeStamp, final Date endTimeStamp, final String sortOrder, + final int getRecordNum) throws PfModelException { assertInitialized(); return new PdpStatisticsProvider().getFilteredPdpStatistics(pfDao, name, pdpGroupName, pdpSubGroup, - startTimeStamp, endTimeStamp); + startTimeStamp, endTimeStamp, sortOrder, getRecordNum); } @Override diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java index c0a6e2c2a..3d1c9f61c 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java @@ -236,7 +236,7 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider { @Override public List getFilteredPdpStatistics(String name, String pdpGroupName, String pdpSubGroup, - Date startTimeStamp, Date endTimeStamp) { + Date startTimeStamp, Date endTimeStamp, String sortOrder, int getRecordNum) { // Not implemented return new ArrayList<>(); } diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java index 02481ca12..fd566a52f 100644 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java +++ b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java @@ -31,7 +31,6 @@ import java.util.ArrayList; import java.util.Base64; import java.util.Date; import java.util.List; - import org.junit.Before; import org.junit.Test; import org.onap.policy.models.pdp.concepts.Pdp; @@ -81,6 +80,8 @@ public class DatabasePolicyModelsProviderTest { private static final Date TIMESTAMP = new Date(); + private static final String ORDER = "DESC"; + private static final Logger LOGGER = LoggerFactory.getLogger(DatabasePolicyModelsProviderTest.class); PolicyModelsProviderParameters parameters; @@ -326,7 +327,7 @@ public class DatabasePolicyModelsProviderTest { }).hasMessageMatching(NAME_IS_NULL); assertThatThrownBy(() -> { - databaseProvider.getFilteredPdpStatistics(NAME, null, "sub", TIMESTAMP, TIMESTAMP); + databaseProvider.getFilteredPdpStatistics(NAME, null, "sub", TIMESTAMP, TIMESTAMP, ORDER, 0); }).hasMessageMatching(GROUP_IS_NULL); assertThatThrownBy(() -> { @@ -467,9 +468,10 @@ public class DatabasePolicyModelsProviderTest { pdpSubGroup.getPdpInstances().add(pdp); PdpStatistics pdpStatistics = new PdpStatistics(); - pdpStatistics.setPdpInstanceId("Pdp1"); + pdpStatistics.setPdpInstanceId(NAME); pdpStatistics.setTimeStamp(new Date()); - pdpStatistics.setPdpGroupName("DefaultGroup"); + pdpStatistics.setPdpGroupName(GROUP); + pdpStatistics.setPdpSubGroupName("type"); ArrayList statisticsArrayList = new ArrayList<>(); statisticsArrayList.add(pdpStatistics); @@ -496,22 +498,38 @@ public class DatabasePolicyModelsProviderTest { assertEquals(pdpGroup.getName(), databaseProvider.deletePdpGroup(GROUP).getName()); assertEquals(0, databaseProvider.getPdpStatistics(null, null).size()); - - databaseProvider.getFilteredPdpStatistics(null, GROUP, null, null, null); - databaseProvider.getFilteredPdpStatistics(null, GROUP, null, new Date(), null); - databaseProvider.getFilteredPdpStatistics(null, GROUP, null, null, new Date()); - databaseProvider.getFilteredPdpStatistics(null, GROUP, null, new Date(), new Date()); - - databaseProvider.getFilteredPdpStatistics(NAME, GROUP, null, null, null); - databaseProvider.getFilteredPdpStatistics(NAME, GROUP, null, new Date(), new Date()); - - databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", null, null); - databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", new Date(), new Date()); - - databaseProvider.createPdpStatistics(statisticsArrayList); - databaseProvider.updatePdpStatistics(statisticsArrayList); - - databaseProvider.deletePdpStatistics("pdp1", null); + assertEquals(1, databaseProvider.createPdpStatistics(statisticsArrayList).size()); + assertEquals(1, databaseProvider.updatePdpStatistics(statisticsArrayList).size()); + + assertEquals(NAME, databaseProvider.getPdpStatistics(null, null).get(0).getPdpInstanceId()); + assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(null, GROUP, null, null, null, ORDER, 0).get(0) + .getPdpInstanceId()); + assertEquals(0, + databaseProvider.getFilteredPdpStatistics(null, GROUP, null, new Date(), null, ORDER, 0).size()); + assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(null, GROUP, null, null, new Date(), ORDER, 0) + .get(0).getPdpInstanceId()); + assertEquals(0, databaseProvider + .getFilteredPdpStatistics(null, GROUP, null, new Date(), new Date(), ORDER, 0).size()); + + assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, null, null, null, ORDER, 0).get(0) + .getPdpInstanceId()); + assertEquals(0, databaseProvider + .getFilteredPdpStatistics(NAME, GROUP, null, new Date(), new Date(), ORDER, 0).size()); + + assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", null, null, ORDER, 0) + .get(0).getPdpInstanceId()); + assertEquals(0, databaseProvider + .getFilteredPdpStatistics(NAME, GROUP, "type", new Date(), new Date(), ORDER, 0).size()); + + assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", null, null, ORDER, 1) + .get(0).getPdpInstanceId()); + assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", null, null, ORDER, 5) + .get(0).getPdpInstanceId()); + assertEquals(0, databaseProvider + .getFilteredPdpStatistics(NAME, GROUP, "type", new Date(), new Date(), ORDER, 5).size()); + + assertEquals(NAME, databaseProvider.deletePdpStatistics(NAME, null).get(0).getPdpInstanceId()); + assertEquals(0, databaseProvider.getPdpStatistics(null, null).size()); } catch (Exception exc) { LOGGER.warn("test should not throw an exception", exc); fail("test should not throw an exception"); diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java index d809f66ba..73940a6b3 100644 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java +++ b/models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java @@ -1,6 +1,6 @@ /*- * ============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"); @@ -230,7 +230,7 @@ public class DummyBadProviderImpl implements PolicyModelsProvider { @Override public List getFilteredPdpStatistics(String name, String pdpGroupName, String pdpSubGroup, - Date startTimeStamp, Date endTimeStamp) { + Date startTimeStamp, Date endTimeStamp, String sortOrder, int getRecordNum) { // Not implemented return new ArrayList<>(); } -- cgit 1.2.3-korg