Fix for Feature Toggle rest module
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / togglz-rest / togglz-rest-services / src / test / java / org / openecomp / TogglzFeatureRestTest.java
1 package org.openecomp;
2
3 import com.google.common.collect.Sets;
4 import org.junit.Test;
5 import org.openecomp.sdc.common.togglz.ToggleStatus;
6 import org.openecomp.sdc.common.togglz.ToggleableFeature;
7 import org.openecomp.sdcrests.togglz.rest.TogglzFeatures;
8 import org.openecomp.sdcrests.togglz.rest.mapping.MapToggleableFeatureToDto;
9 import org.openecomp.sdcrests.togglz.rest.services.TogglzFeaturesImpl;
10 import org.openecomp.sdcrests.togglz.types.FeatureDto;
11 import org.openecomp.sdcrests.togglz.types.FeatureSetDto;
12
13 import javax.ws.rs.core.Response;
14 import java.util.Arrays;
15 import java.util.Collection;
16 import java.util.Collections;
17 import java.util.Set;
18 import java.util.stream.Collectors;
19
20 import static org.junit.Assert.assertEquals;
21 import static org.junit.Assert.assertNotNull;
22 import static org.junit.Assert.assertTrue;
23 import static org.mockito.Mockito.mock;
24 import static org.mockito.Mockito.when;
25
26 public class TogglzFeatureRestTest {
27
28     @Test
29     public void shouldConvertDataProperly() {
30         ToggleableFeature tf = mock(ToggleableFeature.class);
31         final String TF_NAME = "tf";
32         final boolean ACTIVE = true;
33         when(tf.name()).thenReturn(TF_NAME);
34         when(tf.isActive()).thenReturn(ACTIVE);
35         MapToggleableFeatureToDto mapToggleableFeatureToDto = new MapToggleableFeatureToDto();
36         FeatureSetDto target = new FeatureSetDto();
37         Collection<ToggleStatus> source = Collections.singletonList(tf);
38         mapToggleableFeatureToDto.doMapping(source, target);
39         assertEquals(source.size(), target.getFeatures().size());
40         FeatureDto result = target.getFeatures().iterator().next();
41         assertEquals(TF_NAME, result.getName());
42         assertEquals(ACTIVE, result.isActive());
43
44     }
45
46     @Test
47     public void shouldGetCurrentTogglzValues() {
48         TogglzFeatures togglzFeature = new TogglzFeaturesImpl();
49         Response response = togglzFeature.getFeatures();
50         assertNotNull(response);
51         Object entity = response.getEntity();
52         assertEquals(entity.getClass(), FeatureSetDto.class);
53         Set<FeatureDto> features = ((FeatureSetDto) entity).getFeatures();
54         assertEquals(features.size(), ToggleableFeature.values().length);
55         Set<String> names = Arrays.stream(ToggleableFeature.values()).map(Enum::name).collect(Collectors.toSet());
56         Set<String> dtoNames = features.stream().map(FeatureDto::getName).collect(Collectors.toSet());
57         assertTrue(Sets.symmetricDifference(names, dtoNames).isEmpty());
58     }
59 }