Implement validation and hierarchical get
[policy/models.git] / models-provider / src / test / java / org / onap / policy / models / provider / impl / DatabasePolicyModelsProviderTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019-2020 Nordix Foundation.
4  *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
5  * ================================================================================
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  * SPDX-License-Identifier: Apache-2.0
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.models.provider.impl;
23
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertTrue;
28
29 import java.util.ArrayList;
30 import java.util.Base64;
31 import java.util.Date;
32 import java.util.List;
33
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.onap.policy.models.base.PfModelException;
37 import org.onap.policy.models.pdp.concepts.Pdp;
38 import org.onap.policy.models.pdp.concepts.PdpGroup;
39 import org.onap.policy.models.pdp.concepts.PdpGroupFilter;
40 import org.onap.policy.models.pdp.concepts.PdpStatistics;
41 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
42 import org.onap.policy.models.pdp.enums.PdpHealthStatus;
43 import org.onap.policy.models.pdp.enums.PdpState;
44 import org.onap.policy.models.provider.PolicyModelsProvider;
45 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
46 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
47 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
48 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
49 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
50 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
51 import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
52 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
53
54 /**
55  * Test the database models provider implementation.
56  *
57  * @author Liam Fallon (liam.fallon@est.tech)
58  */
59 public class DatabasePolicyModelsProviderTest {
60     private static final String NAME = "name";
61
62     private static final String TEMPLATE_IS_NULL = "^serviceTemplate is marked .*on.*ull but is null$";
63
64     private static final String POLICY_ID_IS_NULL = "^policyId is marked .*on.*ull but is null$";
65
66     private static final String SUBGROUP_IS_NULL = "^pdpSubGroup is marked .*on.*ull but is null$";
67
68     private static final String GROUP_IS_NULL = "^pdpGroupName is marked .*on.*ull but is null$";
69
70     private static final String NAME_IS_NULL = "^name is marked .*on.*ull but is null$";
71
72     private static final String FILTER_IS_NULL = "^filter is marked .*on.*ull but is null$";
73
74     private static final String POLICY_ID = "policy_id";
75
76     private static final String GROUP = "group";
77
78     private static final String VERSION_100 = "1.0.0";
79
80     private static final Date TIMESTAMP = new Date();
81
82     private static final String ORDER = "DESC";
83
84     PolicyModelsProviderParameters parameters;
85
86     /**
87      * Initialize parameters.
88      */
89     @Before
90     public void setupParameters() {
91         parameters = new PolicyModelsProviderParameters();
92         parameters.setDatabaseDriver("org.h2.Driver");
93         parameters.setDatabaseUrl("jdbc:h2:mem:testdb");
94         parameters.setDatabaseUser("policy");
95         parameters.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
96         parameters.setPersistenceUnit("ToscaConceptTest");
97     }
98
99     @Test
100     public void testInitAndClose() throws Exception {
101         assertThatThrownBy(() -> {
102             new DatabasePolicyModelsProviderImpl(null);
103         }).hasMessageMatching("^parameters is marked .*on.*ull but is null$");
104
105         PolicyModelsProvider databaseProvider =
106                 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
107
108         parameters.setDatabaseUrl("jdbc://www.acmecorp.nonexist");
109
110         databaseProvider.close();
111         databaseProvider.init();
112
113         databaseProvider.close();
114
115         parameters.setDatabaseUrl("jdbc:h2:mem:testdb");
116
117         parameters.setPersistenceUnit("WileECoyote");
118
119         assertThatThrownBy(databaseProvider::init).hasMessageContaining("could not create Data Access Object (DAO)");
120
121         parameters.setPersistenceUnit("ToscaConceptTest");
122
123         databaseProvider.init();
124         databaseProvider.close();
125
126         assertThatThrownBy(() -> {
127             databaseProvider.init();
128             databaseProvider.init();
129         }).hasMessage("provider is already initialized");
130
131         databaseProvider.close();
132
133         databaseProvider.close();
134     }
135
136     @Test
137     public void testProviderMethodsNull() throws Exception {
138
139         PolicyModelsProvider databaseProvider =
140                 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
141
142         assertThatThrownBy(() -> {
143             databaseProvider.getFilteredPolicyTypes(null);
144         }).hasMessageMatching(FILTER_IS_NULL);
145
146         assertThatThrownBy(() -> {
147             databaseProvider.getFilteredPolicyTypeList(null);
148         }).hasMessageMatching(FILTER_IS_NULL);
149
150         assertThatThrownBy(() -> {
151             databaseProvider.createPolicyTypes(null);
152         }).hasMessageMatching(TEMPLATE_IS_NULL);
153
154         assertThatThrownBy(() -> {
155             databaseProvider.updatePolicyTypes(null);
156         }).hasMessageMatching(TEMPLATE_IS_NULL);
157
158         assertThatThrownBy(() -> {
159             databaseProvider.deletePolicyType(null, null);
160         }).hasMessageMatching(NAME_IS_NULL);
161
162         assertThatThrownBy(() -> {
163             databaseProvider.deletePolicyType("aaa", null);
164         }).hasMessageMatching("^version is marked .*on.*ull but is null$");
165
166         assertThatThrownBy(() -> {
167             databaseProvider.deletePolicyType(null, "aaa");
168         }).hasMessageMatching(NAME_IS_NULL);
169
170         assertThatThrownBy(() -> {
171             databaseProvider.getFilteredPolicies(null);
172         }).hasMessageMatching(FILTER_IS_NULL);
173
174         assertThatThrownBy(() -> {
175             databaseProvider.getFilteredPolicyList(null);
176         }).hasMessageMatching(FILTER_IS_NULL);
177
178         assertThatThrownBy(() -> {
179             databaseProvider.createPolicies(null);
180         }).hasMessageMatching(TEMPLATE_IS_NULL);
181
182         assertThatThrownBy(() -> {
183             databaseProvider.updatePolicies(null);
184         }).hasMessageMatching(TEMPLATE_IS_NULL);
185
186         assertThatThrownBy(() -> {
187             databaseProvider.deletePolicy(null, null);
188         }).hasMessageMatching(NAME_IS_NULL);
189
190         assertThatThrownBy(() -> {
191             databaseProvider.deletePolicy(null, "aaa");
192         }).hasMessageMatching(NAME_IS_NULL);
193
194         assertThatThrownBy(() -> {
195             databaseProvider.deletePolicy("aaa", null);
196         }).hasMessageMatching("^version is marked .*on.*ull but is null$");
197
198         assertThatThrownBy(() -> {
199             databaseProvider.getOperationalPolicy(null, null);
200         }).hasMessageMatching(POLICY_ID_IS_NULL);
201
202         assertThatThrownBy(() -> {
203             databaseProvider.getOperationalPolicy(null, "");
204         }).hasMessageMatching(POLICY_ID_IS_NULL);
205
206         assertThatThrownBy(() -> {
207             databaseProvider.getOperationalPolicy("", null);
208         }).hasMessage("no policy found for policy: :null");
209
210         assertThatThrownBy(() -> {
211             databaseProvider.createOperationalPolicy(null);
212         }).hasMessageMatching("^legacyOperationalPolicy is marked .*on.*ull but is null$");
213
214         assertThatThrownBy(() -> {
215             databaseProvider.updateOperationalPolicy(null);
216         }).hasMessageMatching("^legacyOperationalPolicy is marked .*on.*ull but is null$");
217
218         assertThatThrownBy(() -> {
219             databaseProvider.deleteOperationalPolicy(null, null);
220         }).hasMessageMatching(POLICY_ID_IS_NULL);
221
222         assertThatThrownBy(() -> {
223             databaseProvider.deleteOperationalPolicy(null, "");
224         }).hasMessageMatching(POLICY_ID_IS_NULL);
225
226         assertThatThrownBy(() -> {
227             databaseProvider.deleteOperationalPolicy("", null);
228         }).hasMessageMatching("^policyVersion is marked .*on.*ull but is null$");
229
230         assertThatThrownBy(() -> {
231             databaseProvider.getGuardPolicy(null, null);
232         }).hasMessageMatching(POLICY_ID_IS_NULL);
233
234         assertThatThrownBy(() -> {
235             databaseProvider.getGuardPolicy(null, "");
236         }).hasMessageMatching(POLICY_ID_IS_NULL);
237
238         assertThatThrownBy(() -> {
239             databaseProvider.getGuardPolicy("", null);
240         }).hasMessage("no policy found for policy: :null");
241
242         assertThatThrownBy(() -> {
243             databaseProvider.createGuardPolicy(null);
244         }).hasMessageMatching("^legacyGuardPolicy is marked .*on.*ull but is null$");
245
246         assertThatThrownBy(() -> {
247             databaseProvider.updateGuardPolicy(null);
248         }).hasMessageMatching("^legacyGuardPolicy is marked .*on.*ull but is null$");
249
250         assertThatThrownBy(() -> {
251             databaseProvider.deleteGuardPolicy(null, null);
252         }).hasMessageMatching(POLICY_ID_IS_NULL);
253
254         assertThatThrownBy(() -> {
255             databaseProvider.deleteGuardPolicy(null, "");
256         }).hasMessageMatching(POLICY_ID_IS_NULL);
257
258         assertThatThrownBy(() -> {
259             databaseProvider.deleteGuardPolicy("", null);
260         }).hasMessageMatching("^policyVersion is marked .*on.*ull but is null$");
261
262         assertThatThrownBy(() -> {
263             databaseProvider.getFilteredPdpGroups(null);
264         }).hasMessageMatching(FILTER_IS_NULL);
265
266         assertThatThrownBy(() -> {
267             databaseProvider.createPdpGroups(null);
268         }).hasMessageMatching("^pdpGroups is marked .*on.*ull but is null$");
269
270         assertThatThrownBy(() -> {
271             databaseProvider.updatePdpGroups(null);
272         }).hasMessageMatching("^pdpGroups is marked .*on.*ull but is null$");
273
274         assertThatThrownBy(() -> {
275             databaseProvider.updatePdpSubGroup(null, null);
276         }).hasMessageMatching(GROUP_IS_NULL);
277
278         assertThatThrownBy(() -> {
279             databaseProvider.updatePdpSubGroup(null, new PdpSubGroup());
280         }).hasMessageMatching(GROUP_IS_NULL);
281
282         assertThatThrownBy(() -> {
283             databaseProvider.updatePdpSubGroup(NAME, null);
284         }).hasMessageMatching(SUBGROUP_IS_NULL);
285
286         assertThatThrownBy(() -> {
287             databaseProvider.updatePdpSubGroup(NAME, new PdpSubGroup());
288         }).hasMessage("parameter \"localName\" is null");
289
290         assertThatThrownBy(() -> {
291             databaseProvider.updatePdp(null, null, null);
292         }).hasMessageMatching(GROUP_IS_NULL);
293
294         assertThatThrownBy(() -> {
295             databaseProvider.updatePdp(null, null, new Pdp());
296         }).hasMessageMatching(GROUP_IS_NULL);
297
298         assertThatThrownBy(() -> {
299             databaseProvider.updatePdp(null, "sub", null);
300         }).hasMessageMatching(GROUP_IS_NULL);
301
302         assertThatThrownBy(() -> {
303             databaseProvider.updatePdp(null, "sub", new Pdp());
304         }).hasMessageMatching(GROUP_IS_NULL);
305
306         assertThatThrownBy(() -> {
307             databaseProvider.updatePdp(NAME, null, null);
308         }).hasMessageMatching(SUBGROUP_IS_NULL);
309
310         assertThatThrownBy(() -> {
311             databaseProvider.updatePdp(NAME, null, new Pdp());
312         }).hasMessageMatching(SUBGROUP_IS_NULL);
313
314         assertThatThrownBy(() -> {
315             databaseProvider.updatePdp(NAME, "sub", null);
316         }).hasMessageMatching("^pdp is marked .*on.*ull but is null$");
317
318         assertThatThrownBy(() -> {
319             databaseProvider.updatePdp(NAME, "sub", new Pdp());
320         }).hasMessage("parameter \"localName\" is null");
321
322         assertThatThrownBy(() -> {
323             databaseProvider.deletePdpGroup(null);
324         }).hasMessageMatching(NAME_IS_NULL);
325
326         assertThatThrownBy(() -> {
327             databaseProvider.getFilteredPdpStatistics(NAME, null, "sub", TIMESTAMP, TIMESTAMP, ORDER, 0);
328         }).hasMessageMatching(GROUP_IS_NULL);
329
330         assertThatThrownBy(() -> {
331             databaseProvider.createPdpStatistics(null);
332         }).hasMessageMatching("^pdpStatisticsList is marked .*on.*ull but is null$");
333
334         assertThatThrownBy(() -> {
335             databaseProvider.updatePdpStatistics(null);
336         }).hasMessageMatching("^pdpStatisticsList is marked .*on.*ull but is null$");
337
338         assertThatThrownBy(() -> {
339             databaseProvider.deletePdpStatistics(null, TIMESTAMP);
340         }).hasMessageMatching(NAME_IS_NULL);
341
342         databaseProvider.close();
343     }
344
345     @Test
346     public void testProviderMethodsNotInit() throws Exception {
347         PolicyModelsProvider databaseProvider =
348                 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
349
350         databaseProvider.close();
351
352         assertThatThrownBy(() -> {
353             databaseProvider.getPolicyTypes(NAME, "version");
354         }).hasMessage("policy models provider is not initilaized");
355     }
356
357     @Test
358     public void testProviderMethods() throws PfModelException {
359         PolicyModelsProvider databaseProvider =
360                 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
361
362         assertThatThrownBy(() -> databaseProvider.getPolicyTypes(NAME, VERSION_100))
363                 .hasMessage("service template not found in database");
364
365         assertTrue(databaseProvider.getPolicyTypeList(NAME, VERSION_100).isEmpty());
366
367         assertThatThrownBy(() -> databaseProvider.getFilteredPolicyTypes(ToscaPolicyTypeFilter.builder().build()))
368                 .hasMessage("service template not found in database");
369
370         assertTrue(databaseProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()).isEmpty());
371
372         assertThatThrownBy(() -> {
373             databaseProvider.createPolicyTypes(new ToscaServiceTemplate());
374         }).hasMessage("no policy types specified on service template");
375
376         assertThatThrownBy(() -> {
377             databaseProvider.updatePolicyTypes(new ToscaServiceTemplate());
378         }).hasMessage("no policy types specified on service template");
379
380         assertThatThrownBy(() -> databaseProvider.deletePolicyType(NAME, VERSION_100))
381                 .hasMessage("service template not found in database");
382
383         assertThatThrownBy(() -> databaseProvider.getPolicies(NAME, VERSION_100))
384                 .hasMessage("service template not found in database");
385
386         assertTrue(databaseProvider.getPolicyList(NAME, VERSION_100).isEmpty());
387
388         assertThatThrownBy(() -> databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build()))
389                 .hasMessage("service template not found in database");
390
391         assertTrue(databaseProvider.getFilteredPolicyList(ToscaPolicyFilter.builder().build()).isEmpty());
392
393         assertThatThrownBy(() -> {
394             databaseProvider.createPolicies(new ToscaServiceTemplate());
395         }).hasMessage("topology template not specified on service template");
396
397         assertThatThrownBy(() -> {
398             databaseProvider.updatePolicies(new ToscaServiceTemplate());
399         }).hasMessage("topology template not specified on service template");
400
401         assertThatThrownBy(() -> databaseProvider.deletePolicy("Policy", "0.0.0").getToscaTopologyTemplate())
402                 .hasMessage("service template not found in database");
403
404         assertThatThrownBy(() -> {
405             databaseProvider.getOperationalPolicy(POLICY_ID, null);
406         }).hasMessage("no policy found for policy: policy_id:null");
407
408         assertThatThrownBy(() -> {
409             databaseProvider.getOperationalPolicy(POLICY_ID, "10");
410         }).hasMessage("no policy found for policy: policy_id:10");
411
412         assertThatThrownBy(() -> {
413             databaseProvider.createOperationalPolicy(new LegacyOperationalPolicy());
414         }).hasMessageMatching(NAME_IS_NULL);
415
416         assertThatThrownBy(() -> {
417             databaseProvider.updateOperationalPolicy(new LegacyOperationalPolicy());
418         }).hasMessageMatching(NAME_IS_NULL);
419
420         assertThatThrownBy(() -> {
421             databaseProvider.deleteOperationalPolicy(POLICY_ID, "55");
422         }).hasMessage("no policy found for policy: policy_id:55");
423
424         assertThatThrownBy(() -> {
425             databaseProvider.getGuardPolicy(POLICY_ID, null);
426         }).hasMessage("no policy found for policy: policy_id:null");
427
428         assertThatThrownBy(() -> {
429             databaseProvider.getGuardPolicy(POLICY_ID, "6");
430         }).hasMessage("no policy found for policy: policy_id:6");
431
432         assertThatThrownBy(() -> {
433             databaseProvider.createGuardPolicy(new LegacyGuardPolicyInput());
434         }).hasMessage("policy type for guard policy \"null\" unknown");
435
436         assertThatThrownBy(() -> {
437             databaseProvider.updateGuardPolicy(new LegacyGuardPolicyInput());
438         }).hasMessage("policy type for guard policy \"null\" unknown");
439
440         assertThatThrownBy(() -> {
441             databaseProvider.deleteGuardPolicy(POLICY_ID, "33");
442         }).hasMessage("no policy found for policy: policy_id:33");
443
444         assertEquals(0, databaseProvider.getPdpGroups(NAME).size());
445         assertEquals(0, databaseProvider.getFilteredPdpGroups(PdpGroupFilter.builder().build()).size());
446
447         assertNotNull(databaseProvider.createPdpGroups(new ArrayList<>()));
448         assertNotNull(databaseProvider.updatePdpGroups(new ArrayList<>()));
449
450         PdpGroup pdpGroup = new PdpGroup();
451         pdpGroup.setName(GROUP);
452         pdpGroup.setVersion("1.2.3");
453         pdpGroup.setPdpGroupState(PdpState.ACTIVE);
454         pdpGroup.setPdpSubgroups(new ArrayList<>());
455         List<PdpGroup> groupList = new ArrayList<>();
456         groupList.add(pdpGroup);
457
458         PdpSubGroup pdpSubGroup = new PdpSubGroup();
459         pdpSubGroup.setPdpType("type");
460         pdpSubGroup.setDesiredInstanceCount(123);
461         pdpSubGroup.setSupportedPolicyTypes(new ArrayList<>());
462         pdpSubGroup.getSupportedPolicyTypes().add(new ToscaPolicyTypeIdentifier("type", "7.8.9"));
463         pdpGroup.getPdpSubgroups().add(pdpSubGroup);
464
465         Pdp pdp = new Pdp();
466         pdp.setInstanceId("type-0");
467         pdp.setMessage("Hello");
468         pdp.setPdpState(PdpState.ACTIVE);
469         pdp.setHealthy(PdpHealthStatus.UNKNOWN);
470         pdpSubGroup.setPdpInstances(new ArrayList<>());
471         pdpSubGroup.getPdpInstances().add(pdp);
472
473         PdpStatistics pdpStatistics = new PdpStatistics();
474         pdpStatistics.setPdpInstanceId(NAME);
475         pdpStatistics.setTimeStamp(new Date());
476         pdpStatistics.setPdpGroupName(GROUP);
477         pdpStatistics.setPdpSubGroupName("type");
478         ArrayList<PdpStatistics> statisticsArrayList = new ArrayList<>();
479         statisticsArrayList.add(pdpStatistics);
480
481         assertEquals(123,
482                 databaseProvider.createPdpGroups(groupList).get(0).getPdpSubgroups().get(0).getDesiredInstanceCount());
483         assertEquals(1, databaseProvider.getPdpGroups(GROUP).size());
484
485         pdpSubGroup.setDesiredInstanceCount(234);
486         databaseProvider.updatePdpSubGroup(GROUP, pdpSubGroup);
487         assertEquals(234,
488                 databaseProvider.getPdpGroups(GROUP).get(0).getPdpSubgroups().get(0).getDesiredInstanceCount());
489
490         assertEquals("Hello", databaseProvider.getPdpGroups(GROUP).get(0).getPdpSubgroups().get(0).getPdpInstances()
491                 .get(0).getMessage());
492         pdp.setMessage("Howdy");
493         databaseProvider.updatePdp(GROUP, "type", pdp);
494         assertEquals("Howdy", databaseProvider.getPdpGroups(GROUP).get(0).getPdpSubgroups().get(0).getPdpInstances()
495                 .get(0).getMessage());
496
497         assertThatThrownBy(() -> {
498             databaseProvider.deletePdpGroup(NAME);
499         }).hasMessage("delete of PDP group \"name:0.0.0\" failed, PDP group does not exist");
500
501         assertEquals(pdpGroup.getName(), databaseProvider.deletePdpGroup(GROUP).getName());
502
503         assertEquals(0, databaseProvider.getPdpStatistics(null, null).size());
504         assertEquals(1, databaseProvider.createPdpStatistics(statisticsArrayList).size());
505         assertEquals(1, databaseProvider.updatePdpStatistics(statisticsArrayList).size());
506
507         assertEquals(NAME, databaseProvider.getPdpStatistics(null, null).get(0).getPdpInstanceId());
508         assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(null, GROUP, null, null, null, ORDER, 0).get(0)
509                 .getPdpInstanceId());
510         assertEquals(0,
511                 databaseProvider.getFilteredPdpStatistics(null, GROUP, null, new Date(), null, ORDER, 0).size());
512         assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(null, GROUP, null, null, new Date(), ORDER, 0)
513                 .get(0).getPdpInstanceId());
514         assertEquals(0,
515                 databaseProvider.getFilteredPdpStatistics(null, GROUP, null, new Date(), new Date(), ORDER, 0).size());
516
517         assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, null, null, null, ORDER, 0).get(0)
518                 .getPdpInstanceId());
519         assertEquals(0,
520                 databaseProvider.getFilteredPdpStatistics(NAME, GROUP, null, new Date(), new Date(), ORDER, 0).size());
521
522         assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", null, null, ORDER, 0).get(0)
523                 .getPdpInstanceId());
524         assertEquals(0, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", new Date(), new Date(), ORDER, 0)
525                 .size());
526
527         assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", null, null, ORDER, 1).get(0)
528                 .getPdpInstanceId());
529         assertEquals(NAME, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", null, null, ORDER, 5).get(0)
530                 .getPdpInstanceId());
531         assertEquals(0, databaseProvider.getFilteredPdpStatistics(NAME, GROUP, "type", new Date(), new Date(), ORDER, 5)
532                 .size());
533
534         assertEquals(NAME, databaseProvider.deletePdpStatistics(NAME, null).get(0).getPdpInstanceId());
535         assertEquals(0, databaseProvider.getPdpStatistics(null, null).size());
536
537         databaseProvider.close();
538     }
539 }