Merge "Upgrade io.grpc library in CDS actor"
[policy/models.git] / models-tosca / src / test / java / org / onap / policy / models / tosca / authorative / concepts / ToscaServiceTemplateFilterTest.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.tosca.authorative.concepts;
23
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertTrue;
27
28 import java.io.File;
29 import java.util.List;
30 import org.junit.Test;
31 import org.onap.policy.common.utils.coder.CoderException;
32 import org.onap.policy.common.utils.coder.StandardYamlCoder;
33 import org.onap.policy.models.base.PfKey;
34
35 /**
36  * Test of the {@link ToscaServiceTemplateFilter} class.
37  *
38  * @author Liam Fallon (liam.fallon@est.tech)
39  */
40 public class ToscaServiceTemplateFilterTest {
41     @Test
42     public void testNullList() {
43         ToscaServiceTemplateFilter filter = ToscaServiceTemplateFilter.builder().build();
44
45         assertThatThrownBy(() -> {
46             filter.filter(null);
47         }).hasMessageMatching("originalList is marked .*on.*ull but is null");
48     }
49
50     @Test
51     public void testFilterNothing() throws CoderException {
52         ToscaServiceTemplates serviceTemplates = new StandardYamlCoder().decode(
53                 new File("src/test/resources/servicetemplates/TestServiceTemplates.yaml"), ToscaServiceTemplates.class);
54
55         ToscaServiceTemplateFilter filter = ToscaServiceTemplateFilter.builder().build();
56
57         List<ToscaServiceTemplate> filteredList = filter.filter(serviceTemplates.getServiceTemplates());
58         assertTrue(filteredList.containsAll(serviceTemplates.getServiceTemplates()));
59     }
60
61     @Test
62     public void testFilterLatestVersion() throws CoderException {
63         ToscaServiceTemplates serviceTemplates = new StandardYamlCoder().decode(
64                 new File("src/test/resources/servicetemplates/TestServiceTemplates.yaml"), ToscaServiceTemplates.class);
65
66         ToscaServiceTemplateFilter filter =
67                 ToscaServiceTemplateFilter.builder().version(ToscaServiceTemplateFilter.LATEST_VERSION).build();
68
69         List<ToscaServiceTemplate> filteredList = filter.filter(serviceTemplates.getServiceTemplates());
70         assertEquals(4, filteredList.size());
71         assertEquals("0.0.0", filteredList.get(0).getVersion());
72         assertEquals("1.2.8", filteredList.get(1).getVersion());
73         assertEquals("1.2.3", filteredList.get(2).getVersion());
74         assertEquals("1.8.3", filteredList.get(3).getVersion());
75
76         filter = ToscaServiceTemplateFilter.builder().version("1.2.3").build();
77         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
78         assertEquals(3, filteredList.size());
79         filter = ToscaServiceTemplateFilter.builder().version(PfKey.NULL_KEY_VERSION).build();
80         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
81         assertEquals(6, filteredList.size());
82
83         serviceTemplates.getServiceTemplates().get(12).setVersion("0.0.0");
84         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
85         assertEquals(7, filteredList.size());
86         assertEquals(PfKey.NULL_KEY_VERSION, filteredList.get(0).getVersion());
87         assertEquals(PfKey.NULL_KEY_VERSION, filteredList.get(6).getVersion());
88     }
89
90     @Test
91     public void testFilterNameVersion() throws CoderException {
92         ToscaServiceTemplates serviceTemplates = new StandardYamlCoder().decode(
93                 new File("src/test/resources/servicetemplates/TestServiceTemplates.yaml"), ToscaServiceTemplates.class);
94
95         ToscaServiceTemplateFilter filter = ToscaServiceTemplateFilter.builder().name("name0").build();
96         List<ToscaServiceTemplate> filteredList = filter.filter(serviceTemplates.getServiceTemplates());
97         assertEquals(13, filteredList.size());
98
99         filter = ToscaServiceTemplateFilter.builder().name("not.found").build();
100         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
101         assertEquals(0, filteredList.size());
102
103         filter = ToscaServiceTemplateFilter.builder().name(PfKey.NULL_KEY_NAME).build();
104         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
105         assertEquals(2, filteredList.size());
106
107         filter = ToscaServiceTemplateFilter.builder().version(PfKey.NULL_KEY_VERSION).build();
108         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
109         assertEquals(6, filteredList.size());
110
111         filter = ToscaServiceTemplateFilter.builder().name(PfKey.NULL_KEY_NAME).version(PfKey.NULL_KEY_VERSION).build();
112         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
113         assertEquals(2, filteredList.size());
114
115         filter = ToscaServiceTemplateFilter.builder().name("name2").build();
116         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
117         assertEquals(1, filteredList.size());
118
119         filter = ToscaServiceTemplateFilter.builder().name("name2").version("1.8.3").build();
120         filteredList = filter.filter(serviceTemplates.getServiceTemplates());
121         assertEquals(1, filteredList.size());
122         assertEquals("name2", filteredList.get(0).getName());
123         assertEquals("1.8.3", filteredList.get(0).getVersion());
124     }
125 }