13d30e40169a35dc43c12f885741f7c48292feb4
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2021 Nordix Foundation.
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.clamp.controlloop.runtime.util;
22
23 import java.util.List;
24 import javax.ws.rs.core.Response.Status;
25 import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
26 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
27 import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
28 import org.onap.policy.common.utils.coder.Coder;
29 import org.onap.policy.common.utils.coder.CoderException;
30 import org.onap.policy.common.utils.coder.StandardCoder;
31 import org.onap.policy.common.utils.resources.ResourceUtils;
32 import org.onap.policy.models.base.PfModelException;
33 import org.onap.policy.models.base.PfModelRuntimeException;
34 import org.onap.policy.models.provider.PolicyModelsProvider;
35 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
36 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
37 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
38
39 /**
40  * Class to hold/create all parameters for test cases.
41  *
42  */
43 public class CommonTestData {
44     private static final Coder CODER = new StandardCoder();
45
46     /**
47      * Gets the standard Control Loop parameters.
48      *
49      * @param dbName the database name
50      * @return the standard Control Loop parameters
51      * @throws ControlLoopRuntimeException on errors reading the control loop parameters
52      */
53     public static ClRuntimeParameterGroup geParameterGroup(final String dbName) {
54         try {
55             return CODER.convert(getParameterGroupAsString(dbName), ClRuntimeParameterGroup.class);
56
57         } catch (CoderException e) {
58             throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, "cannot read Control Loop parameters", e);
59         }
60     }
61
62     /**
63      * Gets the standard Control Loop parameters, as a String.
64      *
65      * @param dbName the database name
66      * @return the standard Control Loop parameters as string
67      */
68     public static String getParameterGroupAsString(final String dbName) {
69         return ResourceUtils.getResourceAsString("src/test/resources/parameters/TestParameters.json")
70                 .replace("${dbName}", "jdbc:h2:mem:" + dbName);
71     }
72
73     /**
74      * Create a new PolicyModelsProvider.
75      *
76      * @param databaseProviderParameters the database Provider Parameters
77      * @return a new PolicyModelsProvider
78      */
79     public static PolicyModelsProvider getPolicyModelsProvider(
80             PolicyModelsProviderParameters databaseProviderParameters) {
81         try {
82             return new PolicyModelsProviderFactory().createPolicyModelsProvider(databaseProviderParameters);
83         } catch (PfModelException e) {
84             throw new PfModelRuntimeException(e);
85         }
86     }
87
88     /**
89      * Create a List of Participants.
90      *
91      * @return a List of Participants
92      */
93     public static List<Participant> createParticipants() {
94         var participant1 = createParticipant(
95                 new ToscaConceptIdentifier("org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant", "2.3.4"),
96                 new ToscaConceptIdentifier("org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
97                         "2.3.4"));
98         var participant2 = createParticipant(
99                 new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1"),
100                 new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1"));
101         var participant3 = createParticipant(
102                 new ToscaConceptIdentifier("org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant", "2.2.1"),
103                 new ToscaConceptIdentifier("org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant", "2.2.1"));
104         return List.of(participant1, participant2, participant3);
105     }
106
107     /**
108      * Create a new Participant.
109      *
110      * @param participantType the participant Type
111      * @param participantId the participant id
112      * @return a new Participant
113      */
114     public static Participant createParticipant(ToscaConceptIdentifier participantType,
115             ToscaConceptIdentifier participantId) {
116         var participant = new Participant();
117         participant.setDefinition(participantId);
118         participant.setParticipantType(participantType);
119         participant.setName(participantId.getName());
120         participant.setVersion(participantId.getVersion());
121         return participant;
122     }
123 }