Toggle
[sdc.git] / catalog-dao / src / test / java / org / openecomp / sdc / be / resources / data / togglz / FeatureToggleEventTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.resources.data.togglz;
22
23 import static org.hamcrest.Matchers.is;
24 import static org.hamcrest.Matchers.isEmptyOrNullString;
25 import static org.hamcrest.Matchers.isEmptyString;
26 import static org.hamcrest.Matchers.nullValue;
27 import static org.junit.Assert.assertThat;
28
29 import org.junit.Test;
30 import org.openecomp.sdc.be.togglz.ToggleableFeature;
31 import org.togglz.core.repository.FeatureState;
32
33 public class FeatureToggleEventTest {
34     private final String strategyId = "123456";
35     private final String param1 = "param1";
36     private final String param1Value = "param1Value";
37     private final String param2 = "param2";
38     private final String param2Value = "param2Value";
39
40     @Test
41     public void createEventFromFeatureStateObject() {
42         final String param3 = "param3";
43         final String param3Value = "param3Value";
44         final String responseParams = "param3=param3Value,param1=param1Value,param2=param2Value";
45
46
47         FeatureState featureState = new FeatureState(ToggleableFeature.DEFAULT_FEATURE, true);
48         featureState.setStrategyId(strategyId)
49                 .setParameter(param1, param1Value)
50                 .setParameter(param2, param2Value)
51                 .setParameter(param3, param3Value);
52
53         FeatureToggleEvent featureToggleEvent = new FeatureToggleEvent(featureState);
54         assertThat(featureToggleEvent.getEnabled(), is("true"));
55         assertThat(featureToggleEvent.getStrategyId(), is(strategyId));
56         assertThat(featureToggleEvent.getParameters(), is(responseParams));
57     }
58
59     @Test
60     public void createEventWhenStrategyIsNotSetAndStateIsFalse() {
61         FeatureState featureState = new FeatureState(ToggleableFeature.DEFAULT_FEATURE, false);
62
63         FeatureToggleEvent featureToggleEvent = new FeatureToggleEvent(featureState);
64         assertThat(featureToggleEvent.getEnabled(), is("false"));
65         assertThat(featureToggleEvent.getParameters(), isEmptyString());
66         assertThat(featureToggleEvent.getStrategyId(), isEmptyOrNullString());
67     }
68
69     @Test
70     public void getFeatureStateObjectFromEventWithNoParams() {
71         FeatureState featureState = new FeatureState(ToggleableFeature.DEFAULT_FEATURE, true);
72         FeatureToggleEvent featureToggleEvent = new FeatureToggleEvent(featureState);
73         FeatureState fromEvent = featureToggleEvent.getFeatureState();
74         assertThat(ToggleableFeature.DEFAULT_FEATURE, is(fromEvent.getFeature()));
75         assertThat(fromEvent.isEnabled(), is(true));
76         assertThat(fromEvent.getParameterMap().size(), is(0));
77         assertThat(fromEvent.getStrategyId(), nullValue());
78     }
79
80     @Test
81     public void getFeatureStateObjectFromEventWithParams() {
82         FeatureState featureState = new FeatureState(ToggleableFeature.DEFAULT_FEATURE, true);
83         featureState.setStrategyId(strategyId)
84                 .setParameter(param1, param1Value)
85                 .setParameter(param2, param2Value);
86         FeatureToggleEvent featureToggleEvent = new FeatureToggleEvent(featureState);
87         FeatureState fromEvent = featureToggleEvent.getFeatureState();
88         assertThat(fromEvent.getFeature(), is(ToggleableFeature.DEFAULT_FEATURE));
89         assertThat(fromEvent.isEnabled(), is(true));
90         assertThat(fromEvent.getStrategyId(), is(strategyId));
91         assertThat(fromEvent.getParameterMap().size(), is(2));
92         assertThat(fromEvent.getParameterMap().get(param1), is(param1Value));
93         assertThat(fromEvent.getParameterMap().get(param2), is(param2Value));
94     }
95
96     @Test
97     public void getFeatureStateObjectFromEventWhenStateIsWrong() {
98         FeatureState featureState = new FeatureState(ToggleableFeature.DEFAULT_FEATURE, true);
99         FeatureToggleEvent featureToggleEvent = new FeatureToggleEvent(featureState);
100         featureToggleEvent.setFeatureName("wrong");
101         assertThat(featureToggleEvent.getFeatureState(), nullValue());
102     }
103
104 }