Search in sources :

Example 1 with DispatchManager

use of io.nuls.message.bus.manager.DispatchManager in project nuls by nuls-io.

the class MessageBusServiceImplTest method subscribeMessage.

/**
 * 验证订阅后的返回值
 * 验证订阅后handlerMap中的值
 * 验证订阅后messageHandlerMapping中的值
 * Validate the subscription's return value
 * Verify the value of the handlerMap & messageHandlerMapping after subscribing
 */
@Test
public void subscribeMessage() throws Exception {
    subscribe();
    assertNotNull(handlerId);
    Field field = messageBusService.getClass().getDeclaredField("processorManager");
    field.setAccessible(true);
    DispatchManager processorManager = (DispatchManager) field.get(messageBusService);
    // 验证订阅后handlerMap中的值
    Class processorManagerClass = processorManager.getClass();
    Field handlerMapField = processorManagerClass.getDeclaredField("handlerMap");
    handlerMapField.setAccessible(true);
    Map<String, NulsMessageHandler> handlerMap = (Map<String, NulsMessageHandler>) handlerMapField.get(processorManager);
    assertNotNull(handlerMap.get(handlerId));
    assertEquals(handlerMap.get(handlerId), messageHandler);
    // 验证订阅后messageHandlerMapping中的值
    Field messageHandlerMappingField = processorManagerClass.getDeclaredField("messageHandlerMapping");
    messageHandlerMappingField.setAccessible(true);
    Map<Class, Set<String>> messageHandlerMapping = (Map<Class, Set<String>>) messageHandlerMappingField.get(processorManager);
    assertNotNull(messageHandlerMapping.get(block));
    assertTrue(messageHandlerMapping.get(block).contains(handlerId));
}
Also used : Field(java.lang.reflect.Field) Set(java.util.Set) DispatchManager(io.nuls.message.bus.manager.DispatchManager) NulsMessageHandler(io.nuls.message.bus.handler.intf.NulsMessageHandler) Map(java.util.Map) Test(org.junit.Test)

Example 2 with DispatchManager

use of io.nuls.message.bus.manager.DispatchManager in project nuls by nuls-io.

the class MessageBusServiceImplTest method unsubscribeMessage.

/**
 * 验证取消订阅后handlerMap中的值
 * Verify the value in handlerMap after unsubscribing
 * @throws Exception
 */
@Test
public void unsubscribeMessage() throws Exception {
    messageBusService.unsubscribeMessage(handlerId);
    Field field = messageBusService.getClass().getDeclaredField("processorManager");
    field.setAccessible(true);
    DispatchManager processorManager = (DispatchManager) field.get(messageBusService);
    // 验证取消订阅后handlerMap中的值
    Class processorManagerClass = processorManager.getClass();
    Field handlerMapField = processorManagerClass.getDeclaredField("handlerMap");
    handlerMapField.setAccessible(true);
    Map<String, NulsMessageHandler> handlerMap = (Map<String, NulsMessageHandler>) handlerMapField.get(processorManager);
    assertNull(handlerMap.get(handlerId));
}
Also used : Field(java.lang.reflect.Field) DispatchManager(io.nuls.message.bus.manager.DispatchManager) NulsMessageHandler(io.nuls.message.bus.handler.intf.NulsMessageHandler) Map(java.util.Map) Test(org.junit.Test)

Aggregations

NulsMessageHandler (io.nuls.message.bus.handler.intf.NulsMessageHandler)2 DispatchManager (io.nuls.message.bus.manager.DispatchManager)2 Field (java.lang.reflect.Field)2 Map (java.util.Map)2 Test (org.junit.Test)2 Set (java.util.Set)1