2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2024 Nordix Foundation.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.drools.protocol.configuration;
24 import static org.assertj.core.api.Assertions.assertThat;
25 import static org.junit.jupiter.api.Assertions.assertEquals;
26 import static org.junit.jupiter.api.Assertions.assertFalse;
27 import static org.junit.jupiter.api.Assertions.assertTrue;
29 import java.util.Properties;
30 import org.junit.jupiter.api.Test;
31 import org.onap.policy.common.utils.gson.GsonTestUtils;
33 class DroolsConfigurationTest {
34 private static final String ARTIFACT_ID_STRING = "artifactId";
35 private static final String GROUP_ID_STRING = "groupId";
36 private static final String VERSION_STRING = "version";
39 private static final String NAME = "name";
40 private static final String ARTIFACT = "org.onap.artifact";
41 private static final String GROUPID = "group";
42 private static final String VERSION = "1.0.0";
44 private static final String ARTIFACT2 = "org.onap.artifact2";
45 private static final String GROUPID2 = "group2";
46 private static final String VERSION2 = "1.0.1";
48 private static final String ADDITIONAL_PROPERTY_KEY = "foo";
49 private static final String ADDITIONAL_PROPERTY_VALUE = "bar";
51 private static final String ADDITIONAL_PROPERTY_KEY2 = "hello";
52 private static final String ADDITIONAL_PROPERTY_VALUE2 = "world";
56 final Properties additionalProperties = new Properties();
57 additionalProperties.put(ADDITIONAL_PROPERTY_KEY, ADDITIONAL_PROPERTY_VALUE);
59 final DroolsConfiguration droolsConfig = new DroolsConfiguration(ARTIFACT, GROUPID, VERSION);
60 assertEquals(droolsConfig, (Object) droolsConfig);
62 droolsConfig.set(ARTIFACT_ID_STRING, "foobar");
63 assertEquals("foobar", droolsConfig.get(ARTIFACT_ID_STRING));
65 assertEquals(droolsConfig.with(ARTIFACT_ID_STRING, "foobar2"), droolsConfig);
67 final DroolsConfiguration droolsConfig2 = new DroolsConfiguration();
68 droolsConfig2.setArtifactId(ARTIFACT2);
69 droolsConfig2.setGroupId(GROUPID2);
70 droolsConfig2.setVersion(VERSION2);
72 assertEquals(ARTIFACT2, droolsConfig2.getArtifactId());
73 assertEquals(GROUPID2, droolsConfig2.getGroupId());
74 assertEquals(VERSION2, droolsConfig2.getVersion());
76 assertEquals(droolsConfig2.withArtifactId(ARTIFACT2), droolsConfig2);
77 assertEquals(droolsConfig2.withGroupId(GROUPID2), droolsConfig2);
78 assertEquals(droolsConfig2.withVersion(VERSION2), droolsConfig2);
80 droolsConfig2.setAdditionalProperty(ADDITIONAL_PROPERTY_KEY, ADDITIONAL_PROPERTY_VALUE);
81 assertEquals(droolsConfig2.getAdditionalProperties(), additionalProperties);
83 assertEquals(droolsConfig2,
84 droolsConfig2.withAdditionalProperty(ADDITIONAL_PROPERTY_KEY, ADDITIONAL_PROPERTY_VALUE));
86 assertTrue(droolsConfig2.declaredProperty(ARTIFACT_ID_STRING, ARTIFACT2));
87 assertTrue(droolsConfig2.declaredProperty(GROUP_ID_STRING, GROUPID2));
88 assertTrue(droolsConfig2.declaredProperty(VERSION_STRING, VERSION2));
89 assertFalse(droolsConfig2.declaredProperty("dummy", NAME));
91 assertEquals(ARTIFACT2, droolsConfig2.declaredPropertyOrNotFound(ARTIFACT_ID_STRING, ARTIFACT2));
92 assertEquals(GROUPID2, droolsConfig2.declaredPropertyOrNotFound(GROUP_ID_STRING, GROUPID2));
93 assertEquals(VERSION2, droolsConfig2.declaredPropertyOrNotFound(VERSION_STRING, VERSION2));
94 assertEquals(ARTIFACT2, droolsConfig2.declaredPropertyOrNotFound("dummy", ARTIFACT2));
96 assertThat(droolsConfig2.hashCode()).isNotZero();
100 void testSerialize() {
101 final DroolsConfiguration droolsConfig = new DroolsConfiguration(ARTIFACT, GROUPID, VERSION);
102 droolsConfig.setAdditionalProperty(ADDITIONAL_PROPERTY_KEY, ADDITIONAL_PROPERTY_VALUE);
103 droolsConfig.setAdditionalProperty(ADDITIONAL_PROPERTY_KEY2, ADDITIONAL_PROPERTY_VALUE2);
105 GsonTestUtils gson = new GsonTestUtils();
107 // ensure jackson and gson give same result
108 gson.compareGson(droolsConfig, DroolsConfigurationTest.class);
110 // ensure we get the same value when decoding
111 DroolsConfiguration config2 = gson.gsonRoundTrip(droolsConfig, DroolsConfiguration.class);
112 assertEquals(droolsConfig, config2);
113 assertEquals(gson.gsonEncode(droolsConfig), gson.gsonEncode(config2));