summaryrefslogtreecommitdiffstats
path: root/rulemgt/src/test/java/org/onap/holmes/rulemgt/dcae/DcaeConfigurationPollingTest.java
blob: 25e211add0e501ea6ec8dab4208979c737de5754 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/**
 * Copyright 2017 ZTE Corporation.
 *
 * 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.
 */
package org.onap.holmes.rulemgt.dcae;

import static org.easymock.EasyMock.anyObject;
import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.powermock.api.mockito.PowerMockito.when;

import com.fasterxml.jackson.databind.ObjectMapper;
import javax.ws.rs.ProcessingException;
import org.junit.Before;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.onap.holmes.common.config.MicroServiceConfig;
import org.onap.holmes.common.dcae.entity.DcaeConfigurations;
import org.onap.holmes.common.dcae.entity.Rule;
import org.onap.holmes.common.dcae.utils.DcaeConfigurationParser;
import org.onap.holmes.common.exception.CorrelationException;
import org.onap.holmes.rulemgt.bean.request.RuleCreateRequest;
import org.powermock.api.easymock.PowerMock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;

@PrepareForTest({DcaeConfigurationPolling.class, MicroServiceConfig.class, ObjectMapper.class})
@RunWith(PowerMockRunner.class)
public class DcaeConfigurationPollingTest {

    @org.junit.Rule
    public ExpectedException thrown = ExpectedException.none();

    private DcaeConfigurationPolling daceConfigurationPolling;

    @Before
    public void setUp() {
        daceConfigurationPolling = new DcaeConfigurationPolling("holmes-rule-mgmt");
    }

    @Test
    public void testDaceConfigurationPolling_getDcaeConfigurations_exception() throws Exception {
        PowerMock.resetAll();
        thrown.expect(CorrelationException.class);
        thrown.expectMessage("host");
        PowerMockito.mockStatic(MicroServiceConfig.class);
        when(MicroServiceConfig.getServiceAddrInfoFromCBS("holmes-rule-mgmt"))
                .thenReturn("host");
        PowerMock.createMock(DcaeConfigurationParser.class);
        PowerMock.expectPrivate(DcaeConfigurationParser.class, "parse", "host")
                .andThrow(new CorrelationException("tests")).anyTimes();

        PowerMock.replayAll();
        Whitebox.invokeMethod(daceConfigurationPolling, "getDcaeConfigurations");
        PowerMock.verifyAll();
    }

    @Test
    public void testDaceConfigurationPolling_getDcaeConfigurations_null() throws Exception {
        PowerMock.resetAll();
        thrown.expect(CorrelationException.class);
        PowerMockito.mockStatic(MicroServiceConfig.class);
        when(MicroServiceConfig.getServiceAddrInfoFromCBS("holmes-rule-mgmt"))
                .thenReturn("host");
        PowerMock.createMock(DcaeConfigurationParser.class);
        PowerMock.expectPrivate(DcaeConfigurationParser.class, "parse", "host")
                .andReturn(null).anyTimes();

        PowerMock.replayAll();
        DcaeConfigurations dcaeConfigurations = Whitebox
                .invokeMethod(daceConfigurationPolling, "getDcaeConfigurations");
        PowerMock.verifyAll();

        assertThat(dcaeConfigurations == null, equalTo(true));
    }

    @Test
    public void testDaceConfigurationPolling_addAllCorrelationRules_connection_exception()
            throws Exception {
        PowerMock.resetAll();
        thrown.expect(ProcessingException.class);
        DcaeConfigurations dcaeConfigurations = new DcaeConfigurations();
        Rule rule = new Rule("test", "test", "tset",1);
        dcaeConfigurations.getDefaultRules().add(rule);

        PowerMock.replayAll();
        Whitebox.invokeMethod(daceConfigurationPolling, "addAllCorrelationRules",
                dcaeConfigurations);
        PowerMock.verifyAll();
    }

    @Test
    public void testDaceConfigurationPolling_getRuleCreateRequest() throws Exception {
        PowerMock.resetAll();
        Rule rule = new Rule("test", "test1", "stest",1);
        PowerMock.replayAll();
        RuleCreateRequest actual = Whitebox
                .invokeMethod(daceConfigurationPolling, "getRuleCreateRequest", rule);
        PowerMock.verifyAll();

        assertThat(actual.getRuleName(), equalTo("test"));
        assertThat(actual.getLoopControlName(), equalTo("test1"));
        assertThat(actual.getContent(), equalTo("stest"));
        assertThat(actual.getDescription(), equalTo(""));
        assertThat(actual.getEnabled(), equalTo(1));
    }
}