Search in sources :

Example 1 with ClusterBuilderSlot

use of com.alibaba.csp.sentinel.slots.clusterbuilder.ClusterBuilderSlot in project Sentinel by alibaba.

the class DefaultSlotChainBuilderTest method testBuild.

@Test
public void testBuild() {
    DefaultSlotChainBuilder builder = new DefaultSlotChainBuilder();
    ProcessorSlotChain slotChain = builder.build();
    assertNotNull(slotChain);
    // Verify the order of slot
    AbstractLinkedProcessorSlot<?> next = slotChain.getNext();
    assertTrue(next instanceof NodeSelectorSlot);
    // Store the first NodeSelectorSlot instance
    NodeSelectorSlot nodeSelectorSlot = (NodeSelectorSlot) next;
    next = next.getNext();
    assertTrue(next instanceof ClusterBuilderSlot);
    next = next.getNext();
    assertTrue(next instanceof LogSlot);
    next = next.getNext();
    assertTrue(next instanceof StatisticSlot);
    next = next.getNext();
    assertTrue(next instanceof AuthoritySlot);
    next = next.getNext();
    assertTrue(next instanceof SystemSlot);
    next = next.getNext();
    assertTrue(next instanceof FlowSlot);
    next = next.getNext();
    assertTrue(next instanceof DegradeSlot);
    next = next.getNext();
    assertNull(next);
    // Build again to verify different instances
    ProcessorSlotChain slotChain2 = builder.build();
    assertNotNull(slotChain2);
    // Verify the two ProcessorSlotChain instances are different
    assertNotSame(slotChain, slotChain2);
    next = slotChain2.getNext();
    assertTrue(next instanceof NodeSelectorSlot);
    // Store the second NodeSelectorSlot instance
    NodeSelectorSlot nodeSelectorSlot2 = (NodeSelectorSlot) next;
    // Verify the two NodeSelectorSlot instances are different
    assertNotSame(nodeSelectorSlot, nodeSelectorSlot2);
}
Also used : ClusterBuilderSlot(com.alibaba.csp.sentinel.slots.clusterbuilder.ClusterBuilderSlot) ProcessorSlotChain(com.alibaba.csp.sentinel.slotchain.ProcessorSlotChain) LogSlot(com.alibaba.csp.sentinel.slots.logger.LogSlot) StatisticSlot(com.alibaba.csp.sentinel.slots.statistic.StatisticSlot) NodeSelectorSlot(com.alibaba.csp.sentinel.slots.nodeselector.NodeSelectorSlot) DegradeSlot(com.alibaba.csp.sentinel.slots.block.degrade.DegradeSlot) FlowSlot(com.alibaba.csp.sentinel.slots.block.flow.FlowSlot) AuthoritySlot(com.alibaba.csp.sentinel.slots.block.authority.AuthoritySlot) SystemSlot(com.alibaba.csp.sentinel.slots.system.SystemSlot) Test(org.junit.Test)

Aggregations

ProcessorSlotChain (com.alibaba.csp.sentinel.slotchain.ProcessorSlotChain)1 AuthoritySlot (com.alibaba.csp.sentinel.slots.block.authority.AuthoritySlot)1 DegradeSlot (com.alibaba.csp.sentinel.slots.block.degrade.DegradeSlot)1 FlowSlot (com.alibaba.csp.sentinel.slots.block.flow.FlowSlot)1 ClusterBuilderSlot (com.alibaba.csp.sentinel.slots.clusterbuilder.ClusterBuilderSlot)1 LogSlot (com.alibaba.csp.sentinel.slots.logger.LogSlot)1 NodeSelectorSlot (com.alibaba.csp.sentinel.slots.nodeselector.NodeSelectorSlot)1 StatisticSlot (com.alibaba.csp.sentinel.slots.statistic.StatisticSlot)1 SystemSlot (com.alibaba.csp.sentinel.slots.system.SystemSlot)1 Test (org.junit.Test)1