[AB-190] migrating default config (featureMode, system config, post targets, feature flags) from tables to property files

not longer immediately instantiating the feature flag instance when a new server is found, but only when its config is changed or when a feature mod has its config changed
This commit is contained in:
Sheldan
2021-02-11 00:09:58 +01:00
parent ea12d67e5f
commit 047c574319
98 changed files with 654 additions and 1356 deletions

View File

@@ -1,64 +0,0 @@
package dev.sheldan.abstracto.core.listener;
import dev.sheldan.abstracto.core.listener.sync.entity.FeatureFlagListener;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AFeatureFlag;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.DefaultFeatureFlag;
import dev.sheldan.abstracto.core.service.management.DefaultFeatureFlagManagementService;
import dev.sheldan.abstracto.core.service.management.FeatureFlagManagementService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.util.Arrays;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class FeatureFlagListenerTest {
@InjectMocks
private FeatureFlagListener testUnit;
@Mock
private FeatureFlagManagementService service;
@Mock
private DefaultFeatureFlagManagementService defaultFeatureFlagManagementService;
@Mock
private DefaultFeatureFlag defaultFeatureFlag1;
@Mock
private DefaultFeatureFlag defaultFeatureFlag2;
@Mock
private AFeature aFeature1;
@Mock
private AFeature aFeature2;
@Mock
private AServer server;
@Mock
private AFeatureFlag aFeatureFlag;
private static final Long SERVER_ID = 8L;
@Test
public void testCreateMultipleOneAlreadyExisting() {
when(server.getId()).thenReturn(SERVER_ID);
when(defaultFeatureFlagManagementService.getAllDefaultFeatureFlags()).thenReturn(Arrays.asList(defaultFeatureFlag1, defaultFeatureFlag2));
when(defaultFeatureFlag1.getFeature()).thenReturn(aFeature1);
when(defaultFeatureFlag2.getFeature()).thenReturn(aFeature2);
when(defaultFeatureFlag2.isEnabled()).thenReturn(true);
when(service.featureFlagExists(aFeature1, server)).thenReturn(true);
when(service.featureFlagExists(aFeature2, server)).thenReturn(false);
when(service.createFeatureFlag(aFeature2, SERVER_ID, true)).thenReturn(aFeatureFlag);
testUnit.updateServerConfig(server);
}
}

View File

@@ -5,6 +5,7 @@ import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.models.database.*;
import dev.sheldan.abstracto.core.models.property.FeatureModeProperty;
import dev.sheldan.abstracto.core.models.template.commands.FeatureModeDisplay;
import dev.sheldan.abstracto.core.service.management.DefaultFeatureModeManagement;
import dev.sheldan.abstracto.core.service.management.FeatureFlagManagementService;
@@ -64,7 +65,7 @@ public class FeatureModeServiceBeanTest {
private AFeatureFlag featureFlag;
@Mock
private DefaultFeatureMode defaultFeatureMode;
private FeatureModeProperty defaultFeatureMode;
@Mock
private FeatureConfig featureConfig;
@@ -86,7 +87,7 @@ public class FeatureModeServiceBeanTest {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.empty());
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(featureFlag);
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(Optional.of(featureFlag));
testUnit.enableFeatureModeForFeature(featureEnum, server, featureMode);
verify(featureModeManagementService, times(1)).createMode(featureFlag, featureMode, true);
}
@@ -123,7 +124,7 @@ public class FeatureModeServiceBeanTest {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.empty());
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(featureFlag);
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(Optional.of(featureFlag));
testUnit.disableFeatureModeForFeature(featureEnum, server, featureMode);
verify(featureModeManagementService, times(1)).createMode(featureFlag, featureMode, false);
}
@@ -145,7 +146,7 @@ public class FeatureModeServiceBeanTest {
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureModeManagementService.doesFeatureModeExist(feature, server, featureMode)).thenReturn(false);
when(defaultFeatureModeManagement.getFeatureMode(feature, FEATURE_MODE)).thenReturn(defaultFeatureMode);
when(defaultFeatureMode.isEnabled()).thenReturn(true);
when(defaultFeatureMode.getEnabled()).thenReturn(true);
boolean actualResult = testUnit.featureModeActive(featureEnum, server, featureMode);
Assert.assertTrue(actualResult);
}
@@ -181,14 +182,13 @@ public class FeatureModeServiceBeanTest {
@Test
public void testEffectiveFeatureModesOnlyOneDefault() {
when(defaultFeatureMode.getFeature()).thenReturn(feature);
when(defaultFeatureMode.isEnabled()).thenReturn(true);
when(defaultFeatureMode.getFeature()).thenReturn(feature);
when(defaultFeatureMode.getEnabled()).thenReturn(true);
when(defaultFeatureMode.getFeatureName()).thenReturn(FEATURE_NAME);
when(defaultFeatureModeManagement.getAll()).thenReturn(Arrays.asList(defaultFeatureMode));
when(featureConfigService.getFeatureConfigForFeature(feature)).thenReturn(featureConfig);
when(featureConfigService.getFeatureDisplayForFeature(FEATURE_NAME)).thenReturn(featureConfig);
when(featureModeManagementService.getFeatureModesOfServer(server)).thenReturn(new ArrayList<>());
when(defaultFeatureMode.getMode()).thenReturn(FEATURE_MODE);
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(featureFlag);
when(featureFlagManagementService.getFeatureFlag(FEATURE_NAME, server)).thenReturn(Optional.of(featureFlag));
List<FeatureModeDisplay> effectiveFeatureModes = testUnit.getEffectiveFeatureModes(server);
Assert.assertEquals(1, effectiveFeatureModes.size());
FeatureModeDisplay featureModeDisplay = effectiveFeatureModes.get(0);
@@ -196,7 +196,7 @@ public class FeatureModeServiceBeanTest {
Assert.assertTrue(featureModeDisplay.getFeatureMode().getEnabled());
Assert.assertEquals(featureFlag, featureModeDisplay.getFeatureMode().getFeatureFlag());
Assert.assertEquals(server, featureModeDisplay.getFeatureMode().getServer());
Assert.assertEquals(defaultFeatureMode, featureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(FEATURE_MODE, featureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(featureConfig, featureModeDisplay.getFeatureConfig());
}
@@ -205,10 +205,11 @@ public class FeatureModeServiceBeanTest {
when(aFeatureMode.getEnabled()).thenReturn(true);
when(aFeatureMode.getFeatureFlag()).thenReturn(featureFlag);
when(aFeatureMode.getServer()).thenReturn(server);
when(aFeatureMode.getFeatureMode()).thenReturn(defaultFeatureMode);
when(aFeatureMode.getFeatureMode()).thenReturn(FEATURE_MODE);
when(featureFlag.getFeature()).thenReturn(feature);
when(feature.getKey()).thenReturn(FEATURE_NAME);
when(defaultFeatureModeManagement.getAll()).thenReturn(Arrays.asList(defaultFeatureMode));
when(featureConfigService.getFeatureConfigForFeature(feature)).thenReturn(featureConfig);
when(featureConfigService.getFeatureDisplayForFeature(FEATURE_NAME)).thenReturn(featureConfig);
when(featureModeManagementService.getFeatureModesOfServer(server)).thenReturn(Arrays.asList(aFeatureMode));
when(defaultFeatureMode.getMode()).thenReturn(FEATURE_MODE);
List<FeatureModeDisplay> effectiveFeatureModes = testUnit.getEffectiveFeatureModes(server);
@@ -218,7 +219,7 @@ public class FeatureModeServiceBeanTest {
Assert.assertTrue(featureModeDisplay.getFeatureMode().getEnabled());
Assert.assertEquals(featureFlag, featureModeDisplay.getFeatureMode().getFeatureFlag());
Assert.assertEquals(server, featureModeDisplay.getFeatureMode().getServer());
Assert.assertEquals(defaultFeatureMode, featureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(FEATURE_MODE, featureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(featureConfig, featureModeDisplay.getFeatureConfig());
}
@@ -227,48 +228,51 @@ public class FeatureModeServiceBeanTest {
when(aFeatureMode.getEnabled()).thenReturn(true);
when(aFeatureMode.getFeatureFlag()).thenReturn(featureFlag);
when(aFeatureMode.getServer()).thenReturn(server);
when(aFeatureMode.getFeatureMode()).thenReturn(defaultFeatureMode);
when(aFeatureMode.getFeatureMode()).thenReturn(FEATURE_MODE);
when(featureFlag.getFeature()).thenReturn(feature);
DefaultFeatureMode defaultFeatureMode2 = Mockito.mock(DefaultFeatureMode.class);
when(defaultFeatureMode2.getMode()).thenReturn("SECOND");
when(defaultFeatureMode2.getFeature()).thenReturn(feature);
when(defaultFeatureMode2.isEnabled()).thenReturn(false);
when(feature.getKey()).thenReturn(FEATURE_NAME);
FeatureModeProperty defaultFeatureMode2 = Mockito.mock(FeatureModeProperty.class);
String secondMode = "SECOND";
when(defaultFeatureMode2.getMode()).thenReturn(secondMode);
String feature2 = "FEATURE2";
when(defaultFeatureMode2.getFeatureName()).thenReturn(feature2);
when(defaultFeatureMode2.getEnabled()).thenReturn(false);
when(defaultFeatureModeManagement.getAll()).thenReturn(Arrays.asList(defaultFeatureMode2, defaultFeatureMode));
when(featureConfigService.getFeatureConfigForFeature(feature)).thenReturn(featureConfig);
when(featureConfigService.getFeatureDisplayForFeature(FEATURE_NAME)).thenReturn(featureConfig);
when(featureConfigService.getFeatureDisplayForFeature(feature2)).thenReturn(featureConfig);
when(featureModeManagementService.getFeatureModesOfServer(server)).thenReturn(Arrays.asList(aFeatureMode));
when(defaultFeatureMode.getMode()).thenReturn(FEATURE_MODE);
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(featureFlag);
when(featureFlagManagementService.getFeatureFlag(feature2, server)).thenReturn(Optional.of(featureFlag));
List<FeatureModeDisplay> effectiveFeatureModes = testUnit.getEffectiveFeatureModes(server);
Assert.assertEquals(2, effectiveFeatureModes.size());
FeatureModeDisplay featureModeDisplay = effectiveFeatureModes.get(0);
Assert.assertEquals(false, featureModeDisplay.getIsDefaultValue());
Assert.assertTrue(featureModeDisplay.getFeatureMode().getEnabled());
Assert.assertEquals(featureFlag, featureModeDisplay.getFeatureMode().getFeatureFlag());
Assert.assertEquals(server, featureModeDisplay.getFeatureMode().getServer());
Assert.assertEquals(defaultFeatureMode, featureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(featureConfig, featureModeDisplay.getFeatureConfig());
FeatureModeDisplay activeFeaturemodeDisplay = effectiveFeatureModes.get(0);
Assert.assertEquals(false, activeFeaturemodeDisplay.getIsDefaultValue());
Assert.assertTrue(activeFeaturemodeDisplay.getFeatureMode().getEnabled());
Assert.assertEquals(featureFlag, activeFeaturemodeDisplay.getFeatureMode().getFeatureFlag());
Assert.assertEquals(server, activeFeaturemodeDisplay.getFeatureMode().getServer());
Assert.assertEquals(FEATURE_MODE, activeFeaturemodeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(featureConfig, activeFeaturemodeDisplay.getFeatureConfig());
FeatureModeDisplay featureModeDisplay2 = effectiveFeatureModes.get(1);
Assert.assertEquals(true, featureModeDisplay2.getIsDefaultValue());
Assert.assertFalse(featureModeDisplay2.getFeatureMode().getEnabled());
Assert.assertEquals(featureFlag, featureModeDisplay2.getFeatureMode().getFeatureFlag());
Assert.assertEquals(server, featureModeDisplay2.getFeatureMode().getServer());
Assert.assertEquals(defaultFeatureMode2, featureModeDisplay2.getFeatureMode().getFeatureMode());
Assert.assertEquals(featureConfig, featureModeDisplay2.getFeatureConfig());
FeatureModeDisplay defaultFeatureModeDisplay = effectiveFeatureModes.get(1);
Assert.assertEquals(true, defaultFeatureModeDisplay.getIsDefaultValue());
Assert.assertFalse(defaultFeatureModeDisplay.getFeatureMode().getEnabled());
Assert.assertEquals(featureFlag, defaultFeatureModeDisplay.getFeatureMode().getFeatureFlag());
Assert.assertEquals(server, defaultFeatureModeDisplay.getFeatureMode().getServer());
Assert.assertEquals(secondMode, defaultFeatureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(featureConfig, defaultFeatureModeDisplay.getFeatureConfig());
}
@Test
public void testGetEffectiveFeatureModesForFeature() {
when(defaultFeatureMode.getFeature()).thenReturn(feature);
when(defaultFeatureMode.isEnabled()).thenReturn(true);
when(defaultFeatureMode.getFeature()).thenReturn(feature);
when(defaultFeatureMode.getEnabled()).thenReturn(true);
when(defaultFeatureMode.getFeatureName()).thenReturn(FEATURE_NAME);
when(defaultFeatureModeManagement.getFeatureModesForFeature(feature)).thenReturn(Arrays.asList(defaultFeatureMode));
when(featureConfigService.getFeatureConfigForFeature(feature)).thenReturn(featureConfig);
when(featureConfigService.getFeatureDisplayForFeature(FEATURE_NAME)).thenReturn(featureConfig);
when(featureModeManagementService.getFeatureModesOfFeatureInServer(server, feature)).thenReturn(new ArrayList<>());
when(defaultFeatureMode.getMode()).thenReturn(FEATURE_MODE);
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(featureFlag);
when(featureFlagManagementService.getFeatureFlag(FEATURE_NAME, server)).thenReturn(Optional.of(featureFlag));
List<FeatureModeDisplay> effectiveFeatureModes = testUnit.getEffectiveFeatureModes(server, feature);
Assert.assertEquals(1, effectiveFeatureModes.size());
FeatureModeDisplay featureModeDisplay = effectiveFeatureModes.get(0);
@@ -276,7 +280,7 @@ public class FeatureModeServiceBeanTest {
Assert.assertTrue(featureModeDisplay.getFeatureMode().getEnabled());
Assert.assertEquals(featureFlag, featureModeDisplay.getFeatureMode().getFeatureFlag());
Assert.assertEquals(server, featureModeDisplay.getFeatureMode().getServer());
Assert.assertEquals(defaultFeatureMode, featureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(FEATURE_MODE, featureModeDisplay.getFeatureMode().getFeatureMode());
Assert.assertEquals(featureConfig, featureModeDisplay.getFeatureConfig());
}
}

View File

@@ -1,9 +1,9 @@
package dev.sheldan.abstracto.core.service.management;
import dev.sheldan.abstracto.core.config.DefaultConfigProperties;
import dev.sheldan.abstracto.core.exception.FeatureModeNotFoundException;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.DefaultFeatureMode;
import dev.sheldan.abstracto.core.repository.DefaultFeatureModeRepository;
import dev.sheldan.abstracto.core.models.property.FeatureModeProperty;
import dev.sheldan.abstracto.core.service.FeatureConfigService;
import org.junit.Assert;
import org.junit.Test;
@@ -12,10 +12,9 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -26,44 +25,54 @@ public class DefaultFeatureModeManagementBeanTest {
private DefaultFeatureModeManagementBean testUnit;
@Mock
private DefaultFeatureModeRepository defaultFeatureModeRepository;
@Mock
private FeatureConfigService featureConfigService;
private DefaultConfigProperties defaultConfigProperties;
@Mock
private AFeature feature;
@Mock
private DefaultFeatureMode defaultFeatureMode1;
private FeatureConfigService featureConfigService;
@Mock
private DefaultFeatureMode defaultFeatureMode2;
private FeatureModeProperty defaultFeatureMode1;
@Mock
private FeatureModeProperty defaultFeatureMode2;
private static final String MODE_NAME = "mode";
private static final String FEATURE_NAME = "feature";
@Mock
private HashMap<String, FeatureModeProperty> mockedMap;
@Test
public void getFeatureModesForFeature() {
List<DefaultFeatureMode> defaultFeatureModes = Arrays.asList(defaultFeatureMode1, defaultFeatureMode2);
when(defaultFeatureModeRepository.findByFeature(feature)).thenReturn(defaultFeatureModes);
List<DefaultFeatureMode> featureModesForFeature = testUnit.getFeatureModesForFeature(feature);
when(defaultFeatureMode1.getFeatureName()).thenReturn(FEATURE_NAME);
when(defaultFeatureMode2.getFeatureName()).thenReturn(FEATURE_NAME);
when(feature.getKey()).thenReturn(FEATURE_NAME);
List<FeatureModeProperty> defaultFeatureModes = Arrays.asList(defaultFeatureMode1, defaultFeatureMode2);
when(defaultConfigProperties.getFeatureModes()).thenReturn(mockedMap);
when(mockedMap.values()).thenReturn(defaultFeatureModes);
List<FeatureModeProperty> featureModesForFeature = testUnit.getFeatureModesForFeature(feature);
Assert.assertEquals(defaultFeatureModes.size(), featureModesForFeature.size());
Assert.assertEquals(defaultFeatureModes, featureModesForFeature);
}
@Test
public void testGetAll() {
List<DefaultFeatureMode> defaultFeatureModes = Arrays.asList(defaultFeatureMode1, defaultFeatureMode2);
when(defaultFeatureModeRepository.findAll()).thenReturn(defaultFeatureModes);
List<DefaultFeatureMode> featureModesForFeature = testUnit.getAll();
List<FeatureModeProperty> defaultFeatureModes = Arrays.asList(defaultFeatureMode1, defaultFeatureMode2);
when(defaultConfigProperties.getFeatureModes()).thenReturn(mockedMap);
when(mockedMap.values()).thenReturn(defaultFeatureModes);
List<FeatureModeProperty> featureModesForFeature = testUnit.getAll();
Assert.assertEquals(defaultFeatureModes.size(), featureModesForFeature.size());
Assert.assertEquals(defaultFeatureModes, featureModesForFeature);
}
@Test
public void getFeatureModeOptional() {
when(defaultFeatureModeRepository.findByFeatureAndMode(feature, MODE_NAME)).thenReturn(Optional.of(defaultFeatureMode1));
Optional<DefaultFeatureMode> featureModeOptional = testUnit.getFeatureModeOptional(feature, MODE_NAME);
when(defaultConfigProperties.getFeatureModes()).thenReturn(mockedMap);
when(mockedMap.get(MODE_NAME)).thenReturn(defaultFeatureMode1);
Optional<FeatureModeProperty> featureModeOptional = testUnit.getFeatureModeOptional(feature, MODE_NAME);
Assert.assertTrue(featureModeOptional.isPresent());
featureModeOptional.ifPresent(defaultFeatureMode ->
Assert.assertEquals(defaultFeatureMode1, defaultFeatureMode)
@@ -72,21 +81,22 @@ public class DefaultFeatureModeManagementBeanTest {
@Test
public void getFeatureModeOptionalNotExisting() {
when(defaultFeatureModeRepository.findByFeatureAndMode(feature, MODE_NAME)).thenReturn(Optional.empty());
Optional<DefaultFeatureMode> featureModeOptional = testUnit.getFeatureModeOptional(feature, MODE_NAME);
Optional<FeatureModeProperty> featureModeOptional = testUnit.getFeatureModeOptional(feature, MODE_NAME);
Assert.assertFalse(featureModeOptional.isPresent());
}
@Test
public void getFeatureMode() {
when(defaultFeatureModeRepository.findByFeatureAndMode(feature, MODE_NAME)).thenReturn(Optional.of(defaultFeatureMode1));
DefaultFeatureMode defaultFeatureMode = testUnit.getFeatureMode(feature, MODE_NAME);
when(defaultConfigProperties.getFeatureModes()).thenReturn(mockedMap);
when(mockedMap.get(MODE_NAME)).thenReturn(defaultFeatureMode1);
FeatureModeProperty defaultFeatureMode = testUnit.getFeatureMode(feature, MODE_NAME);
Assert.assertEquals(defaultFeatureMode1, defaultFeatureMode);
}
@Test(expected = FeatureModeNotFoundException.class)
public void getFeatureModeNotExisting() {
when(defaultFeatureModeRepository.findByFeatureAndMode(feature, MODE_NAME)).thenReturn(Optional.empty());
when(feature.getKey()).thenReturn(FEATURE_NAME);
when(featureConfigService.getFeatureModesFromFeatureAsString(FEATURE_NAME)).thenReturn(new ArrayList<>());
testUnit.getFeatureMode(feature, MODE_NAME);
}
}

View File

@@ -31,9 +31,6 @@ public class FeatureModeManagementServiceBeanTest {
@Mock
private AFeature feature;
@Mock
private DefaultFeatureMode defaultFeatureMode;
@Mock
private AFeatureFlag featureFlag;
@@ -51,12 +48,10 @@ public class FeatureModeManagementServiceBeanTest {
@Test
public void createModeWithModeAsString() {
when(featureFlag.getServer()).thenReturn(server);
when(featureFlag.getFeature()).thenReturn(feature);
when(defaultFeatureModeManagement.getFeatureMode(feature, FEATURE_MODE)).thenReturn(defaultFeatureMode);
AFeatureMode createdMode = testUnit.createMode(featureFlag, FEATURE_MODE, true);
Assert.assertEquals(true, createdMode.getEnabled());
Assert.assertEquals(featureFlag, createdMode.getFeatureFlag());
Assert.assertEquals(defaultFeatureMode, createdMode.getFeatureMode());
Assert.assertEquals(FEATURE_MODE, createdMode.getFeatureMode());
Assert.assertEquals(server, createdMode.getServer());
verify(featureModeRepository, times(1)).save(createdMode);
}
@@ -64,13 +59,11 @@ public class FeatureModeManagementServiceBeanTest {
@Test
public void testCreateMode() {
when(featureFlag.getServer()).thenReturn(server);
when(featureFlag.getFeature()).thenReturn(feature);
when(featureMode.getKey()).thenReturn(FEATURE_MODE);
when(defaultFeatureModeManagement.getFeatureMode(feature, FEATURE_MODE)).thenReturn(defaultFeatureMode);
AFeatureMode createdMode = testUnit.createMode(featureFlag, featureMode, true);
Assert.assertEquals(true, createdMode.getEnabled());
Assert.assertEquals(featureFlag, createdMode.getFeatureFlag());
Assert.assertEquals(defaultFeatureMode, createdMode.getFeatureMode());
Assert.assertEquals(FEATURE_MODE, createdMode.getFeatureMode());
Assert.assertEquals(server, createdMode.getServer());
verify(featureModeRepository, times(1)).save(createdMode);
}
@@ -79,7 +72,7 @@ public class FeatureModeManagementServiceBeanTest {
public void featureModeActive() {
when(featureMode.getKey()).thenReturn(FEATURE_MODE);
when(aFeatureMode.getEnabled()).thenReturn(true);
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
Assert.assertTrue(testUnit.isFeatureModeActive(feature, server, featureMode));
}
@@ -87,40 +80,40 @@ public class FeatureModeManagementServiceBeanTest {
public void featureModeNotActive() {
when(featureMode.getKey()).thenReturn(FEATURE_MODE);
when(aFeatureMode.getEnabled()).thenReturn(false);
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
Assert.assertFalse(testUnit.isFeatureModeActive(feature, server, featureMode));
}
@Test
public void featureModeNotPresent() {
when(featureMode.getKey()).thenReturn(FEATURE_MODE);
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.empty());
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.empty());
Assert.assertFalse(testUnit.isFeatureModeActive(feature, server, featureMode));
}
@Test
public void featureModeStringExists() {
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
Assert.assertTrue(testUnit.doesFeatureModeExist(feature, server, FEATURE_MODE));
}
@Test
public void featureModeObjectExists() {
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
when(featureMode.getKey()).thenReturn(FEATURE_MODE);
Assert.assertTrue(testUnit.doesFeatureModeExist(feature, server, featureMode));
}
@Test
public void featureModeDoesNotExist() {
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.empty());
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.empty());
when(featureMode.getKey()).thenReturn(FEATURE_MODE);
Assert.assertFalse(testUnit.doesFeatureModeExist(feature, server, featureMode));
}
@Test
public void testGetFeatureModeOptional() {
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.of(aFeatureMode));
Optional<AFeatureMode> featureModeOptional = testUnit.getFeatureMode(feature, server, FEATURE_MODE);
Assert.assertTrue(featureModeOptional.isPresent());
featureModeOptional.ifPresent(aFeatureMode1 ->
@@ -130,7 +123,7 @@ public class FeatureModeManagementServiceBeanTest {
@Test
public void testGetFeatureModeOptionalNotExisting() {
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode_Mode(server, feature, FEATURE_MODE)).thenReturn(Optional.empty());
when(featureModeRepository.findByServerAndFeatureFlag_FeatureAndFeatureMode(server, feature, FEATURE_MODE)).thenReturn(Optional.empty());
Optional<AFeatureMode> featureModeOptional = testUnit.getFeatureMode(feature, server, FEATURE_MODE);
Assert.assertFalse(featureModeOptional.isPresent());
}