446cbeed8c481dd977a20a6182c68acb766153e4
[policy/apex-pdp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2016-2018 Ericsson. 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.apex.model.policymodel.handling;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
25 import static org.junit.Assert.fail;
26
27 import org.junit.Test;
28 import org.onap.policy.apex.model.basicmodel.concepts.AxKey;
29 import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
30 import org.onap.policy.apex.model.policymodel.concepts.AxLogic;
31 import org.onap.policy.apex.model.policymodel.handling.PolicyLogicReader;
32
33 /**
34  * @author Liam Fallon (liam.fallon@ericsson.com)
35  */
36 public class TestPolicyLogicReader {
37
38     @Test
39     public void test() {
40         final AxReferenceKey logicKey = new AxReferenceKey("LogicParent", "0.0.1", "LogicInstanceName");
41
42         final PolicyLogicReader plReader = new PolicyLogicReader();
43
44         plReader.setLogicPackage("somewhere.over.the.rainbow");
45         assertEquals("somewhere.over.the.rainbow", plReader.getLogicPackage());
46
47         plReader.setDefaultLogic("FunkyDefaultLogic");
48         assertEquals("FunkyDefaultLogic", plReader.getDefaultLogic());
49
50         try {
51             new AxLogic(logicKey, "FunkyLogic", plReader);
52             fail("test should throw an exception here");
53         } catch (final Exception e) {
54             assertEquals(
55                     "logic not found for logic \"somewhere/over/the/rainbow/funkylogic/FunkyDefaultLogic.funkylogic\"",
56                     e.getMessage());
57         }
58
59         plReader.setDefaultLogic(null);
60         try {
61             new AxLogic(logicKey, "FunkyLogic", plReader);
62             fail("test should throw an exception here");
63         } catch (final Exception e) {
64             assertEquals(
65                     "logic not found for logic \"somewhere/over/the/rainbow/funkylogic/LogicParent_LogicInstanceName.funkylogic\"",
66                     e.getMessage());
67         }
68
69         logicKey.setParentLocalName("LogicParentLocalName");
70         try {
71             new AxLogic(logicKey, "FunkyLogic", plReader);
72             fail("test should throw an exception here");
73         } catch (final Exception e) {
74             assertEquals(
75                     "logic not found for logic \"somewhere/over/the/rainbow/funkylogic/LogicParent_LogicParentLocalName_LogicInstanceName.funkylogic\"",
76                     e.getMessage());
77         }
78
79         plReader.setLogicPackage("path.to.apex.logic");
80         try {
81             final AxLogic logic = new AxLogic(logicKey, "FunkyLogic", plReader);
82             assertTrue(logic.getLogic().endsWith("Way out man, this is funky logic!"));
83         } catch (final Exception e) {
84             fail("test should not throw an exception");
85         }
86
87         plReader.setLogicPackage("somewhere.over.the.rainbow");
88         plReader.setDefaultLogic("JavaLogic");
89
90         try {
91             final AxLogic logic = new AxLogic(logicKey, "JAVA", plReader);
92             assertEquals("somewhere.over.the.rainbow.java.JavaLogic", logic.getLogic());
93         } catch (final Exception e) {
94             fail("test should not throw an exception");
95         }
96
97         plReader.setDefaultLogic(null);
98         try {
99             final AxLogic logic = new AxLogic(logicKey, "JAVA", plReader);
100             assertEquals("somewhere.over.the.rainbow.java.LogicParent_LogicParentLocalName_LogicInstanceName",
101                     logic.getLogic());
102         } catch (final Exception e) {
103             fail("test should not throw an exception");
104         }
105
106         logicKey.setParentLocalName(AxKey.NULL_KEY_NAME);
107         try {
108             final AxLogic logic = new AxLogic(logicKey, "JAVA", plReader);
109             assertEquals("somewhere.over.the.rainbow.java.LogicParent_LogicInstanceName", logic.getLogic());
110         } catch (final Exception e) {
111             fail("test should not throw an exception");
112         }
113     }
114 }