942f47c1d543d40cab629d48d529b04ca789b7f0
[policy/models.git] / models-base / src / test / java / org / onap / policy / models / base / PfSearchableKeyTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
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
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
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.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.models.base;
22
23 import static org.assertj.core.api.Assertions.assertThatThrownBy;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertFalse;
26 import static org.junit.Assert.assertTrue;
27
28 import org.junit.Test;
29 import org.onap.policy.models.base.testconcepts.DummyPfConcept;
30
31 public class PfSearchableKeyTest {
32
33     private static final String VERSION001 = "0.0.1";
34     private static final String ID_IS_NULL = "id is marked @NonNull but is null";
35
36     @Test
37     public void testSearchableKey() {
38         PfSearchableKey someKey0 = new PfSearchableKey();
39         assertEquals(PfSearchableKey.getNullKey(), someKey0);
40         assertTrue(someKey0.isNullKey());
41         assertEquals("PfSearchableKey(name=NULL, version=0.0.0)", someKey0.toString());
42
43         PfSearchableKey someKey1 = new PfSearchableKey("my-name", VERSION001);
44         PfSearchableKey someKey2 = new PfSearchableKey(someKey1);
45         PfSearchableKey someKey3 = new PfSearchableKey(someKey1.getId());
46         assertEquals(someKey1, someKey2);
47         assertEquals(someKey1, someKey3);
48         assertFalse(someKey1.isNullVersion());
49         assertEquals("PfSearchableKey(name=my-name, version=0.0.1)", someKey1.toString());
50
51         assertEquals("my-name", someKey1.getName());
52         assertEquals(VERSION001, someKey1.getVersion());
53
54         assertEquals(someKey2, someKey1.getKey());
55         assertEquals(1, someKey1.getKeys().size());
56
57
58         PfConcept pfc = new DummyPfConcept();
59         assertEquals(PfSearchableKey.getNullKey().getId(), pfc.getId());
60
61         assertTrue(PfSearchableKey.getNullKey().matchesId(pfc.getId()));
62
63         assertTrue(PfSearchableKey.getNullKey().isNullKey());
64
65         assertThatThrownBy(() -> PfSearchableKey.getNullKey().matchesId(null)).hasMessage(ID_IS_NULL);
66
67         assertThatThrownBy(() -> someKey0.setName(null)).isInstanceOf(NullPointerException.class)
68                         .hasMessage("name is marked @NonNull but is null");
69
70         assertThatThrownBy(() -> someKey0.setVersion(null)).isInstanceOf(NullPointerException.class)
71                         .hasMessage("version is marked @NonNull but is null");
72
73         PfSearchableKey someKey4 = new PfSearchableKey("my-name.*", VERSION001);
74         assertEquals("my-name.*", someKey4.getName());
75         assertEquals(VERSION001, someKey4.getVersion());
76     }
77 }