2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 Ericsson
6 * =============================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.appc.metricservice.policy.impl;
24 import java.util.Properties;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.junit.runner.RunWith;
28 import org.mockito.Mockito;
29 import org.onap.appc.configuration.Configuration;
30 import org.onap.appc.configuration.ConfigurationFactory;
31 import org.onap.appc.metricservice.Publisher;
32 import org.onap.appc.metricservice.metric.Metric;
33 import org.onap.appc.metricservice.metric.impl.DmaapRequestCounterMetricImpl;
34 import org.powermock.api.mockito.PowerMockito;
35 import org.powermock.core.classloader.annotations.PrepareForTest;
36 import org.powermock.modules.junit4.PowerMockRunner;
37 import org.powermock.reflect.Whitebox;
38 import com.att.eelf.configuration.EELFLogger;
39 import org.junit.Assert;
41 @RunWith(PowerMockRunner.class)
42 @PrepareForTest(ConfigurationFactory.class)
43 public class ScheduledPublishingPolicyImplTest {
45 private Configuration configuration = Mockito.mock(Configuration.class);
49 PowerMockito.mockStatic(ConfigurationFactory.class);
50 PowerMockito.when(ConfigurationFactory.getConfiguration()).thenReturn(configuration);
54 public void testWithPeriodAndStartTime() {
55 Properties properties = new Properties();
56 properties.setProperty("schedule.policy.metric.period", "1000");
57 properties.setProperty("schedule.policy.metric.start.time", "1000");
58 Mockito.when(configuration.getProperties()).thenReturn(properties);
59 PolicyBuilderFactoryImpl builderFactory = new PolicyBuilderFactoryImpl();
60 ScheduledPolicyBuilderImpl policyBuilder = (ScheduledPolicyBuilderImpl) builderFactory.scheduledPolicyBuilder();
61 Metric[] metrics = new Metric[0];
62 policyBuilder.withMetrics(metrics);
63 ScheduledPublishingPolicyImpl publishingPolicy = (ScheduledPublishingPolicyImpl) policyBuilder.build();
64 Assert.assertEquals(0, publishingPolicy.metrics().length);
68 public void testWithPeriod() {
69 Properties properties = new Properties();
70 properties.setProperty("schedule.policy.metric.period", "1000");
71 Mockito.when(configuration.getProperties()).thenReturn(properties);
72 PolicyBuilderFactoryImpl builderFactory = new PolicyBuilderFactoryImpl();
73 ScheduledPolicyBuilderImpl policyBuilder = (ScheduledPolicyBuilderImpl) builderFactory.scheduledPolicyBuilder();
74 Metric[] metrics = new Metric[0];
75 policyBuilder.withMetrics(metrics);
76 ScheduledPublishingPolicyImpl publishingPolicy = (ScheduledPublishingPolicyImpl) policyBuilder.build();
77 Assert.assertEquals(0, publishingPolicy.metrics().length);
81 public void testWithNeither() {
82 Properties properties = new Properties();
83 Mockito.when(configuration.getProperties()).thenReturn(properties);
84 PolicyBuilderFactoryImpl builderFactory = new PolicyBuilderFactoryImpl();
85 ScheduledPolicyBuilderImpl policyBuilder = (ScheduledPolicyBuilderImpl) builderFactory.scheduledPolicyBuilder();
86 Metric[] metrics = new Metric[0];
87 policyBuilder.withMetrics(metrics);
88 policyBuilder.withPublishers(null);
89 ScheduledPublishingPolicyImpl publishingPolicy = (ScheduledPublishingPolicyImpl) policyBuilder.build();
90 Assert.assertEquals(0, publishingPolicy.metrics().length);
95 public void testWithNullProperties() {
96 Mockito.when(configuration.getProperties()).thenReturn(null);
97 PolicyBuilderFactoryImpl builderFactory = new PolicyBuilderFactoryImpl();
98 ScheduledPolicyBuilderImpl policyBuilder = (ScheduledPolicyBuilderImpl) builderFactory.scheduledPolicyBuilder();
99 Metric[] metrics = new Metric[0];
100 policyBuilder.withMetrics(metrics);
101 policyBuilder.withPeriod(100000);
102 policyBuilder.withStartTime(1);
103 ScheduledPublishingPolicyImpl publishingPolicy = (ScheduledPublishingPolicyImpl) policyBuilder.build();
104 Assert.assertEquals(0, publishingPolicy.metrics().length);
105 Assert.assertEquals(100000, publishingPolicy.getPeriod());
106 Assert.assertEquals(1, publishingPolicy.getStartTime());
110 public void testConstructorAndInit() {
111 Properties properties = new Properties();
112 properties.setProperty("schedule.policy.metric.period", "1000");
113 properties.setProperty("schedule.policy.metric.start.time", "1000");
114 properties.setProperty("metric.enabled" , "true");
115 Publisher publisherMock = Mockito.mock(Publisher.class);
116 Publisher[] publisherArray = new Publisher[1];
117 publisherArray[0] = publisherMock;
118 Mockito.when(configuration.getProperties()).thenReturn(properties);
119 ScheduledPublishingPolicyImpl publishingPolicy = new ScheduledPublishingPolicyImpl(1000, 1000, publisherArray, new Metric[0]);
120 Whitebox.setInternalState(publishingPolicy, "configuration", configuration);
121 publishingPolicy.init();
122 Assert.assertEquals(1, publishingPolicy.getPublishers().length);