@Test
    void verifyOperation() throws Throwable {
        val flow = new Flow(CasWebflowConfigurer.FLOW_ID_LOGIN);
        flow.setApplicationContext(applicationContext);
        val flowSession = new MockFlowSession(flow);
        flowSession.setState(new ViewState(flowSession.getDefinitionInternal(), "viewState", mock(ViewFactory.class)));
        val exec = new MockFlowExecutionContext(flowSession);

        val context = MockRequestContext.create(applicationContext);
        context.setFlowExecutionContext(exec);

        val chain = new DefaultChainingMultifactorAuthenticationProvider(applicationContext,
            new DefaultMultifactorAuthenticationFailureModeEvaluator(casProperties));
        val provider = new TestMultifactorAuthenticationProvider();
        provider.setBypassEvaluator(new DefaultChainingMultifactorAuthenticationBypassProvider(applicationContext));
        chain.addMultifactorAuthenticationProvider(provider);
        val attributes = new LocalAttributeMap(RegisteredService.class.getName(), RegisteredServiceTestUtils.getRegisteredService());
        attributes.put(MultifactorAuthenticationProvider.class.getName(), chain);

        val event = new EventFactorySupport().event(this,
            ChainingMultifactorAuthenticationProvider.DEFAULT_IDENTIFIER,
            attributes);
        context.setCurrentEvent(event);
        assertNull(action.execute(context));
        assertNotNull(MultifactorAuthenticationWebflowUtils.getSelectableMultifactorAuthenticationProviders(context));
    }
This is {@link PrepareMultifactorProviderSelectionActionTests}.

@author Misagh Moayyed
@since 6.2.0
core/cas-server-core-webflow-mfa/src/test/java/org/apereo/cas/web/flow/actions/composite/PrepareMultifactorProviderSelectionActionTests.java