Add test for sever abilities initializing in manager.
This commit is contained in:
parent
a159e1261c
commit
d42ce9bc8f
@ -17,6 +17,8 @@
|
|||||||
package com.alibaba.nacos.core.ability.config;
|
package com.alibaba.nacos.core.ability.config;
|
||||||
|
|
||||||
import com.alibaba.nacos.api.ability.constant.AbilityKey;
|
import com.alibaba.nacos.api.ability.constant.AbilityKey;
|
||||||
|
import com.alibaba.nacos.api.ability.register.AbstractAbilityRegistry;
|
||||||
|
import com.alibaba.nacos.api.ability.register.impl.ServerAbilities;
|
||||||
import com.alibaba.nacos.common.ability.handler.HandlerMapping;
|
import com.alibaba.nacos.common.ability.handler.HandlerMapping;
|
||||||
import com.alibaba.nacos.common.event.ServerConfigChangeEvent;
|
import com.alibaba.nacos.common.event.ServerConfigChangeEvent;
|
||||||
import com.alibaba.nacos.core.ability.TestServerAbilityControlManager;
|
import com.alibaba.nacos.core.ability.TestServerAbilityControlManager;
|
||||||
@ -27,6 +29,7 @@ import org.junit.Before;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.mock.env.MockEnvironment;
|
import org.springframework.mock.env.MockEnvironment;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -45,6 +48,8 @@ public class AbilityConfigsTest {
|
|||||||
|
|
||||||
private ServerAbilityControlManager serverAbilityControlManager;
|
private ServerAbilityControlManager serverAbilityControlManager;
|
||||||
|
|
||||||
|
private Map<AbilityKey, Boolean> currentAbilities;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
environment = new MockEnvironment();
|
environment = new MockEnvironment();
|
||||||
@ -68,6 +73,32 @@ public class AbilityConfigsTest {
|
|||||||
this.serverAbilityControlManager = serverAbilityControlManager;
|
this.serverAbilityControlManager = serverAbilityControlManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void fill() throws NoSuchFieldException, IllegalAccessException {
|
||||||
|
Field instanceField = ServerAbilities.class.getDeclaredField("INSTANCE");
|
||||||
|
Field abilitiesField = AbstractAbilityRegistry.class.getDeclaredField("supportedAbilities");
|
||||||
|
abilitiesField.setAccessible(true);
|
||||||
|
instanceField.setAccessible(true);
|
||||||
|
ServerAbilities serverAbilities = (ServerAbilities) instanceField.get(ServerAbilities.class);
|
||||||
|
currentAbilities = (Map<AbilityKey, Boolean>) abilitiesField.get(serverAbilities);
|
||||||
|
currentAbilities.put(AbilityKey.TEST_1, true);
|
||||||
|
currentAbilities.put(AbilityKey.TEST_2, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLoadAbilities() throws NoSuchFieldException, IllegalAccessException, InterruptedException {
|
||||||
|
environment.setProperty(AbilityConfigs.PREFIX + AbilityKey.TEST_1.getName(), Boolean.TRUE.toString());
|
||||||
|
environment.setProperty(AbilityConfigs.PREFIX + AbilityKey.TEST_2.getName(), Boolean.FALSE.toString());
|
||||||
|
// test load
|
||||||
|
fill();
|
||||||
|
ServerAbilityControlManager manager = new ServerAbilityControlManager();
|
||||||
|
// config has higher priority
|
||||||
|
Assert.assertTrue(manager.isCurrentNodeAbilityRunning(AbilityKey.TEST_1));
|
||||||
|
Assert.assertFalse(manager.isCurrentNodeAbilityRunning(AbilityKey.TEST_2));
|
||||||
|
// clear
|
||||||
|
currentAbilities.clear();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testInit() {
|
public void testInit() {
|
||||||
Assert.assertTrue(serverAbilityControlManager.isCurrentNodeAbilityRunning(AbilityKey.TEST_1));
|
Assert.assertTrue(serverAbilityControlManager.isCurrentNodeAbilityRunning(AbilityKey.TEST_1));
|
||||||
|
Loading…
Reference in New Issue
Block a user