Standalone TCA with EELF Logger
[dcaegen2/analytics/tca-gen2.git] / dcae-analytics / dcae-analytics-tca-core / src / test / java / org / onap / dcae / analytics / tca / core / BaseTcaCoreTest.java
1 /*
2  * ================================================================================
3  * Copyright (c) 2018 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  * ============LICENSE_END=========================================================
17  *
18  */
19
20 package org.onap.dcae.analytics.tca.core;
21
22 import org.onap.dcae.analytics.model.cef.EventListener;
23 import org.onap.dcae.analytics.model.util.json.AnalyticsModelJsonConversion;
24 import org.onap.dcae.analytics.tca.core.domain.TestTcaAaiEnrichmentContext;
25 import org.onap.dcae.analytics.tca.core.domain.TestTcaAbatementContext;
26 import org.onap.dcae.analytics.tca.core.service.GenericTcaExecutionContext;
27 import org.onap.dcae.analytics.tca.core.service.GenericTcaExecutionContext.GenericTcaExecutionContextBuilder;
28 import org.onap.dcae.analytics.tca.core.service.GenericTcaProcessingContext;
29 import org.onap.dcae.analytics.tca.core.service.GenericTcaResultContext;
30 import org.onap.dcae.analytics.tca.core.service.TcaAbatementContext;
31 import org.onap.dcae.analytics.tca.core.service.TcaExecutionContext;
32 import org.onap.dcae.analytics.tca.core.service.TcaProcessingContext;
33 import org.onap.dcae.analytics.tca.core.service.TcaResultContext;
34 import org.onap.dcae.analytics.tca.model.policy.TcaPolicy;
35 import org.onap.dcae.analytics.tca.model.util.json.TcaModelJsonConversion;
36 import org.onap.dcae.analytics.test.BaseAnalyticsUnitTest;
37
38 /**
39  * @author Rajiv Singla
40  */
41 public abstract class BaseTcaCoreTest extends BaseAnalyticsUnitTest {
42
43
44     protected static final String TEST_POLICY_JSON_STRING;
45     protected static final String TEST_CEF_EVENT_LISTENER_STRING;
46     protected static final String TEST_CEF_JSON_MESSAGE_WITH_VIOLATION_STRING;
47     protected static final String TEST_CEF_JSON_MESSAGE_WITH_ABATEMENT_STRING;
48     protected static final String TEST_CEF_JSON_MESSAGE_WITH_INAPPLICABLE_EVENT_NAME;
49     protected static final String TEST_REQUEST_ID = "testRequestId";
50     protected static final TcaPolicy TEST_TCA_POLICY;
51
52     static {
53
54         TEST_POLICY_JSON_STRING = fromStream(TestFileLocation.TCA_POLICY_JSON);
55         TEST_CEF_EVENT_LISTENER_STRING = fromStream(TestFileLocation.CEF_JSON_MESSAGE);
56         TEST_CEF_JSON_MESSAGE_WITH_VIOLATION_STRING = fromStream(TestFileLocation.CEF_JSON_MESSAGE_WITH_VIOLATION);
57         TEST_CEF_JSON_MESSAGE_WITH_ABATEMENT_STRING = fromStream(TestFileLocation.CEF_JSON_MESSAGE_WITH_ABATEMENT);
58         TEST_CEF_JSON_MESSAGE_WITH_INAPPLICABLE_EVENT_NAME = fromStream(TestFileLocation
59                 .CEF_JSON_MESSAGE_WITH_INAPPLICABLE_EVENT_NAME);
60         TEST_TCA_POLICY = TcaModelJsonConversion.TCA_POLICY_JSON_FUNCTION.apply(TEST_POLICY_JSON_STRING)
61                 .orElseThrow(() -> new IllegalStateException("Unable to get Test TcaPolicy"));
62     }
63
64     /**
65      * Provides Event Listener that can be used for testing purposes
66      *
67      * @return test Event Listener
68      */
69     protected EventListener getTestEventListener() {
70         return AnalyticsModelJsonConversion.EVENT_LISTENER_JSON_FUNCTION
71                 .apply(TEST_CEF_EVENT_LISTENER_STRING)
72                 .orElseThrow(() -> new IllegalStateException("Unable to get Test CEF Event Listener"));
73     }
74
75     /**
76      * Provides Event Listener with violation that can be used for testing purposes
77      *
78      * @return test Event Listener with violation
79      */
80     protected EventListener getTestEventListenerWithViolation() {
81         return AnalyticsModelJsonConversion.EVENT_LISTENER_JSON_FUNCTION
82                 .apply(TEST_CEF_JSON_MESSAGE_WITH_VIOLATION_STRING)
83                 .orElseThrow(() -> new IllegalStateException("Unable to get Test CEF Event Listeners with violation"));
84     }
85
86
87     /**
88      * Provides Event Listener with abatement that can be used for testing purposes
89      *
90      * @return test Event Listener with abatement
91      */
92     protected EventListener getTestEventListenerWithAbatement() {
93         return AnalyticsModelJsonConversion.EVENT_LISTENER_JSON_FUNCTION
94                 .apply(TEST_CEF_JSON_MESSAGE_WITH_ABATEMENT_STRING)
95                 .orElseThrow(() -> new IllegalStateException("Unable to get Test CEF Event Listeners with abatement"));
96     }
97
98
99     protected TcaExecutionContext getTestExecutionContext(final String cefMessage) {
100         final TestTcaAbatementContext testTcaAbatementContext = new TestTcaAbatementContext();
101         return getTestExecutionContextBuilder(cefMessage, TEST_TCA_POLICY, testTcaAbatementContext).build();
102     }
103
104     protected GenericTcaExecutionContextBuilder getTestExecutionContextBuilder(
105             final String cefMessage, final TcaPolicy tcaPolicy, final TcaAbatementContext tcaAbatementContext) {
106
107         final TcaProcessingContext tcaProcessingContext = new GenericTcaProcessingContext();
108         final TcaResultContext tcaResultContext = new GenericTcaResultContext();
109         final TestTcaAaiEnrichmentContext testTcaAaiEnrichmentContext = new TestTcaAaiEnrichmentContext();
110
111         return GenericTcaExecutionContext.builder()
112                 .requestId(TEST_REQUEST_ID)
113                 .cefMessage(cefMessage)
114                 .tcaPolicy(tcaPolicy)
115                 .tcaProcessingContext(tcaProcessingContext)
116                 .tcaResultContext(tcaResultContext)
117                 .tcaAbatementContext(tcaAbatementContext)
118                 .tcaAaiEnrichmentContext(testTcaAaiEnrichmentContext);
119     }
120
121 }