aboutsummaryrefslogtreecommitdiffstats
path: root/dcae-analytics-cdap-tca/src/test/java/org/openecomp/dcae/apod/analytics/cdap/tca/BaseAnalyticsCDAPTCAIT.java
blob: df5bb06a64e5429ada892dc14cc61a138e1a69b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
 * ===============================LICENSE_START======================================
 *  dcae-analytics
 * ================================================================================
 *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *          http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  ============================LICENSE_END===========================================
 */

package org.openecomp.dcae.apod.analytics.cdap.tca;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.google.common.base.Suppliers;
import org.junit.BeforeClass;
import org.openecomp.dcae.apod.analytics.cdap.tca.settings.TCATestAppConfig;
import org.openecomp.dcae.apod.analytics.cdap.tca.settings.TCATestAppPreferences;
import org.openecomp.dcae.apod.analytics.model.util.AnalyticsModelIOUtils;
import org.openecomp.dcae.apod.analytics.model.util.json.AnalyticsModelObjectMapperSupplier;
import org.openecomp.dcae.apod.analytics.test.BaseDCAEAnalyticsIT;

import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;

/**
 *
 * @author Rajiv Singla . Creation Date: 10/25/2016.
 */
public abstract class BaseAnalyticsCDAPTCAIT extends BaseDCAEAnalyticsIT {

    protected static ObjectMapper objectMapper;

    @BeforeClass
    public static void beforeClass() {
        final AnalyticsModelObjectMapperSupplier analyticsModelObjectMapperSupplier =
                new AnalyticsModelObjectMapperSupplier();
        objectMapper = Suppliers.memoize(analyticsModelObjectMapperSupplier).get();
        objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
    }

    protected static final String TCA_CONTROLLER_POLICY_FILE_LOCATION =
            "data/properties/tca_controller_policy.properties";

    // App Settings
    protected static final String DCAE_ANALYTICS_TCA_TEST_APP_NAME = "dcae-tca";
    protected static final String DCAE_ANALYTICS_TCA_TEST_APP_DESC =
            "DCAE Analytics Threshold Crossing Alert Application";
    

    protected static TCATestAppConfig getTCATestAppConfig() {
        final TCATestAppConfig tcaTestAppConfig = new TCATestAppConfig();
        tcaTestAppConfig.setAppName(DCAE_ANALYTICS_TCA_TEST_APP_NAME);
        tcaTestAppConfig.setAppDescription(DCAE_ANALYTICS_TCA_TEST_APP_DESC);
        return tcaTestAppConfig;
    }

    protected static TCATestAppPreferences getTCATestAppPreferences() {
        final TCATestAppPreferences tcaTestAppPreferences = new TCATestAppPreferences(getTCAPolicyPreferences());
        tcaTestAppPreferences.setSubscriberPollingInterval(null);
        tcaTestAppPreferences.setPublisherMaxBatchSize(null);
        tcaTestAppPreferences.setPublisherMaxRecoveryQueueSize(null);
        tcaTestAppPreferences.setEnableAlertCEFFormat(null);
        tcaTestAppPreferences.setPublisherPollingInterval(null);
        return tcaTestAppPreferences;
    }


    protected static Map<String, String> getTCAPolicyPreferences() {
        final Map<String, String> policyPreferences = new TreeMap<>();
        final Properties policyPreferencesProps =
                AnalyticsModelIOUtils.loadPropertiesFile(TCA_CONTROLLER_POLICY_FILE_LOCATION, new Properties());
        for (Map.Entry<Object, Object> propEntry : policyPreferencesProps.entrySet()) {
            policyPreferences.put(propEntry.getKey().toString(), propEntry.getValue().toString());
        }

        return policyPreferences;
    }

    protected static String serializeModelToJson(Object model) throws JsonProcessingException {
        return objectMapper.writeValueAsString(model);
    }
}