2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.models.pdp.concepts;
23 import static org.assertj.core.api.Assertions.assertThatThrownBy;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertTrue;
27 import java.util.List;
29 import org.junit.Before;
30 import org.junit.Test;
31 import org.onap.policy.common.utils.coder.CoderException;
32 import org.onap.policy.common.utils.coder.StandardCoder;
33 import org.onap.policy.common.utils.resources.ResourceUtils;
36 * Test of the {@link PdpGroupFilter} class.
38 * @author Liam Fallon (liam.fallon@est.tech)
40 public class PdpGroupFilterTest {
41 private List<PdpGroup> pdpGroupList;
44 * Set up a PDP group list for filtering.
46 * @throws CoderException on JSON decoding errors
49 public void setupPdpGroupList() throws CoderException {
50 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroupsForFiltering.json");
51 PdpGroups pdpGroups = new StandardCoder().decode(originalJson, PdpGroups.class);
52 pdpGroupList = pdpGroups.getGroups();
56 public void testNullList() {
57 PdpGroupFilter filter = PdpGroupFilter.builder().build();
59 assertThatThrownBy(() -> {
61 }).hasMessage("originalList is marked @NonNull but is null");
65 public void testFilterNothing() {
66 PdpGroupFilter filter = PdpGroupFilter.builder().build();
68 List<PdpGroup> filteredList = filter.filter(pdpGroupList);
69 assertTrue(filteredList.containsAll(pdpGroupList));
73 public void testFilterLatestVersion() {
74 PdpGroupFilter filter = PdpGroupFilter.builder().version(PdpGroupFilter.LATEST_VERSION).build();
76 List<PdpGroup> filteredList = filter.filter(pdpGroupList);
77 assertEquals(2, filteredList.size());
78 assertEquals("1.2.4", filteredList.get(0).getVersion());
79 assertEquals("1.2.3", filteredList.get(1).getVersion());
83 public void testFilterNameVersion() {
84 PdpGroupFilter filter = PdpGroupFilter.builder().name("PdpGroup0").build();
85 List<PdpGroup> filteredList = filter.filter(pdpGroupList);
86 assertEquals(3, filteredList.size());
88 filter = PdpGroupFilter.builder().name("PdpGroup1").build();
89 filteredList = filter.filter(pdpGroupList);
90 assertEquals(2, filteredList.size());
92 filter = PdpGroupFilter.builder().name("PdpGroup2").build();
93 filteredList = filter.filter(pdpGroupList);
94 assertEquals(0, filteredList.size());
96 filter = PdpGroupFilter.builder().version("1.2.3").build();
97 filteredList = filter.filter(pdpGroupList);
98 assertEquals(2, filteredList.size());
100 filter = PdpGroupFilter.builder().name("PdpGroup0").version("1.2.3").build();
101 filteredList = filter.filter(pdpGroupList);
102 assertEquals(1, filteredList.size());
104 filter = PdpGroupFilter.builder().name("PdpGroup1").version("1.2.9").build();
105 filteredList = filter.filter(pdpGroupList);
106 assertEquals(0, filteredList.size());