Changes for checkstyle 8.32
[policy/apex-pdp.git] / model / context-model / src / test / java / org / onap / policy / apex / model / contextmodel / concepts / ContextAlbumsTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
4  *  Modifications Copyright (C) 2019 Nordix Foundation.
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.apex.model.contextmodel.concepts;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertFalse;
26 import static org.junit.Assert.assertNotEquals;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
29 import static org.junit.Assert.fail;
30
31 import org.junit.Test;
32 import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
33 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
34 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult;
35
36 /**
37  * Context album tests.
38  *
39  * @author Liam Fallon (liam.fallon@ericsson.com)
40  */
41 public class ContextAlbumsTest {
42
43     @Test
44     public void testContextAlbums() {
45         assertNotNull(new AxContextAlbum());
46         assertNotNull(new AxContextAlbum(new AxArtifactKey()));
47         assertNotNull(new AxContextAlbum(new AxArtifactKey(), "AlbumScope", false, new AxArtifactKey()));
48
49         final AxArtifactKey albumKey = new AxArtifactKey("AlbumName", "0.0.1");
50         final AxArtifactKey albumSchemaKey = new AxArtifactKey("AlbumSchemaName", "0.0.1");
51
52         final AxContextAlbum album = new AxContextAlbum(albumKey, "AlbumScope", false, albumSchemaKey);
53         assertNotNull(album);
54
55         final AxArtifactKey newKey = new AxArtifactKey("NewAlbumName", "0.0.1");
56         album.setKey(newKey);
57         assertEquals("NewAlbumName:0.0.1", album.getKey().getId());
58         assertEquals("NewAlbumName:0.0.1", album.getKeys().get(0).getId());
59         album.setKey(albumKey);
60
61         try {
62             album.setScope("");
63             fail("test should throw an exception here");
64         } catch (final Exception e) {
65             assertEquals("parameter \"scope\": value \"\", does not match regular expression \"[A-Za-z0-9\\-_]+\"",
66                             e.getMessage());
67         }
68
69         album.setScope("NewAlbumScope");
70         assertEquals("NewAlbumScope", album.getScope());
71
72         assertEquals(false, album.isWritable());
73         album.setWritable(true);
74         assertEquals(true, album.isWritable());
75
76         final AxArtifactKey newSchemaKey = new AxArtifactKey("NewAlbumSchemaName", "0.0.1");
77         album.setItemSchema(newSchemaKey);
78         assertEquals("NewAlbumSchemaName:0.0.1", album.getItemSchema().getId());
79         album.setItemSchema(albumSchemaKey);
80
81         AxValidationResult result = new AxValidationResult();
82         result = album.validate(result);
83         assertEquals(ValidationResult.VALID, result.getValidationResult());
84
85         album.setKey(AxArtifactKey.getNullKey());
86         result = new AxValidationResult();
87         result = album.validate(result);
88         assertEquals(ValidationResult.INVALID, result.getValidationResult());
89
90         album.setKey(newKey);
91         result = new AxValidationResult();
92         result = album.validate(result);
93         assertEquals(ValidationResult.VALID, result.getValidationResult());
94
95         album.setScope("UNDEFINED");
96         result = new AxValidationResult();
97         result = album.validate(result);
98         assertEquals(ValidationResult.INVALID, result.getValidationResult());
99
100         album.setScope("NewAlbumScope");
101         result = new AxValidationResult();
102         result = album.validate(result);
103         assertEquals(ValidationResult.VALID, result.getValidationResult());
104
105         album.setItemSchema(AxArtifactKey.getNullKey());
106         result = new AxValidationResult();
107         result = album.validate(result);
108         assertEquals(ValidationResult.INVALID, result.getValidationResult());
109
110         album.setItemSchema(albumSchemaKey);
111         result = new AxValidationResult();
112         result = album.validate(result);
113         assertEquals(ValidationResult.VALID, result.getValidationResult());
114
115         album.clean();
116
117         final AxContextAlbum clonedAlbum = new AxContextAlbum(album);
118         assertEquals("AxContextAlbum:(key=AxArtifactKey:(name=NewAlbumName,version=0.0.1),"
119                         + "scope=NewAlbumScope,isWritable=true,itemSchema="
120                         + "AxArtifactKey:(name=AlbumSchemaName,version=0.0.1))", clonedAlbum.toString());
121
122         assertFalse(album.hashCode() == 0);
123
124         assertTrue(album.equals(album));
125         assertTrue(album.equals(clonedAlbum));
126         assertFalse(album.equals(null));
127         assertFalse(album.equals((Object) "Hello"));
128         assertFalse(album.equals(new AxContextAlbum(new AxArtifactKey(), "Scope", false, AxArtifactKey.getNullKey())));
129         assertFalse(album.equals(new AxContextAlbum(newKey, "Scope", false, AxArtifactKey.getNullKey())));
130         assertFalse(album.equals(new AxContextAlbum(newKey, "NewAlbumScope", false, AxArtifactKey.getNullKey())));
131         assertFalse(album.equals(new AxContextAlbum(newKey, "NewAlbumScope", true, AxArtifactKey.getNullKey())));
132         assertTrue(album.equals(new AxContextAlbum(newKey, "NewAlbumScope", true, albumSchemaKey)));
133
134         assertEquals(0, album.compareTo(album));
135         assertEquals(0, album.compareTo(clonedAlbum));
136         assertNotEquals(0, album.compareTo(null));
137         assertNotEquals(0, album.compareTo(new AxArtifactKey()));
138         assertNotEquals(0, album.compareTo(
139                         new AxContextAlbum(new AxArtifactKey(), "Scope", false, AxArtifactKey.getNullKey())));
140         assertNotEquals(0, album.compareTo(new AxContextAlbum(newKey, "Scope", false, AxArtifactKey.getNullKey())));
141         assertNotEquals(0, album
142                         .compareTo(new AxContextAlbum(newKey, "NewAlbumScope", false, AxArtifactKey.getNullKey())));
143         assertNotEquals(0,
144                         album.compareTo(new AxContextAlbum(newKey, "NewAlbumScope", true, AxArtifactKey.getNullKey())));
145         assertEquals(0, album.compareTo(new AxContextAlbum(newKey, "NewAlbumScope", true, albumSchemaKey)));
146
147         final AxContextAlbums albums = new AxContextAlbums();
148         result = new AxValidationResult();
149         result = albums.validate(result);
150         assertEquals(ValidationResult.INVALID, result.getValidationResult());
151
152         // Observation, no albums in album map
153         albums.setKey(new AxArtifactKey("AlbumsKey", "0.0.1"));
154         result = new AxValidationResult();
155         result = albums.validate(result);
156         assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
157
158         albums.getAlbumsMap().put(newKey, album);
159         result = new AxValidationResult();
160         result = albums.validate(result);
161         assertEquals(ValidationResult.VALID, result.getValidationResult());
162
163         albums.getAlbumsMap().put(AxArtifactKey.getNullKey(), null);
164         result = new AxValidationResult();
165         result = albums.validate(result);
166         assertEquals(ValidationResult.INVALID, result.getValidationResult());
167
168         albums.getAlbumsMap().remove(AxArtifactKey.getNullKey());
169         result = new AxValidationResult();
170         result = albums.validate(result);
171         assertEquals(ValidationResult.VALID, result.getValidationResult());
172
173         albums.getAlbumsMap().put(new AxArtifactKey("NullValueKey", "0.0.1"), null);
174         result = new AxValidationResult();
175         result = albums.validate(result);
176         assertEquals(ValidationResult.INVALID, result.getValidationResult());
177
178         albums.getAlbumsMap().remove(new AxArtifactKey("NullValueKey", "0.0.1"));
179         result = new AxValidationResult();
180         result = albums.validate(result);
181         assertEquals(ValidationResult.VALID, result.getValidationResult());
182
183         albums.clean();
184
185         final AxContextAlbums clonedAlbums = new AxContextAlbums(albums);
186         assertTrue(clonedAlbums.toString().startsWith(
187                         "AxContextAlbums:(AxContextAlbums:(key=AxArtifactKey:(name=AlbumsKey,version=0.0.1)"));
188
189         assertFalse(albums.hashCode() == 0);
190
191         assertTrue(albums.equals(albums));
192         assertTrue(albums.equals(clonedAlbums));
193         assertFalse(albums.equals(null));
194         assertFalse(albums.equals((Object) "Hello"));
195         assertFalse(albums.equals(new AxContextAlbums(new AxArtifactKey())));
196
197         assertEquals(0, albums.compareTo(albums));
198         assertEquals(0, albums.compareTo(clonedAlbums));
199         assertNotEquals(0, albums.compareTo(null));
200         assertNotEquals(0, albums.compareTo(new AxArtifactKey()));
201         assertNotEquals(0, albums.compareTo(new AxContextAlbums(new AxArtifactKey())));
202
203         clonedAlbums.get(newKey).setScope("YetAnotherScope");
204         assertNotEquals(0, albums.compareTo(clonedAlbums));
205
206         assertEquals("NewAlbumName", albums.get("NewAlbumName").getKey().getName());
207         assertEquals("NewAlbumName", albums.get("NewAlbumName", "0.0.1").getKey().getName());
208         assertEquals(1, albums.getAll("NewAlbumName", "0.0.1").size());
209         assertEquals(0, albums.getAll("NonExistantAlbumName").size());
210     }
211 }