public void OnTap_IsActivated_IsDisabledForPopUp_CallsPopUpManagerHideActivePopUp()
    {
        ITestUIElementConstArg arg     = CreateMockArg();
        TestUIElement          testUIE = new TestUIElement(arg);

        testUIE.SetIsActivated_Test(true);
        testUIE.SetIsDisabledForPopUp_Test(true);
        IPopUpManager popUpManager = arg.popUpManager;

        testUIE.OnTap(1);


        popUpManager.Received(1).CheckAndHideActivePopUp();
    }
    public void OnTap_IsActivated_IsNotDisabledForPopUp_IsNotEnabledInput_CallsParentUIEOnTap()
    {
        ITestUIElementConstArg arg     = CreateMockArg();
        TestUIElement          testUIE = new TestUIElement(arg);

        testUIE.SetIsActivated_Test(true);
        testUIE.SetIsDisabledForPopUp_Test(false);
        testUIE.SetIsEnabledInput_Test(false);
        IUIElement parentUIE = Substitute.For <IUIElement>();

        arg.uia.GetParentUIE().Returns(parentUIE);

        testUIE.OnTap(1);

        parentUIE.Received(1).OnTap(1);
    }
    public void OnTap_IsActivated_IsNotDisabledForPopUp_IsEnabledInput_CallsParentScrollerInSequence()
    {
        ITestUIElementConstArg arg     = CreateMockArg();
        TestUIElement          testUIE = new TestUIElement(arg);

        testUIE.SetIsActivated_Test(true);
        testUIE.SetIsDisabledForPopUp_Test(false);
        testUIE.SetIsEnabledInput_Test(true);
        IScroller parentScroller = testUIE.GetProximateParentScroller();

        testUIE.OnTap(1);

        parentScroller.Received(1).UpdateVelocity(0f, 0);
        parentScroller.Received(1).UpdateVelocity(0f, 1);
        parentScroller.Received(1).ResetDrag();
        parentScroller.Received(1).CheckAndPerformStaticBoundarySnap();
    }
    public ITestUIElementConstArg CreateMockArg()
    {
        ITestUIElementConstArg arg          = Substitute.For <ITestUIElementConstArg>();
        IUIManager             uim          = Substitute.For <IUIManager>();
        IPopUpManager          popUpManager = Substitute.For <IPopUpManager>();

        uim.GetPopUpManager().Returns(popUpManager);
        arg.uim.Returns(uim);
        arg.processFactory.Returns(Substitute.For <IUISystemProcessFactory>());
        arg.uiElementFactory.Returns(Substitute.For <IUIElementFactory>());
        arg.uia.Returns(Substitute.For <IUIAdaptor>());
        arg.activationMode.Returns(ActivationMode.None);
        arg.activationStateEngine.Returns(Substitute.For <IUIEActivationStateEngine>());
        arg.popUpManager.Returns(popUpManager);

        return(arg);
    }
 public TestUIElement(ITestUIElementConstArg arg) : base(arg)
 {
     thisUIEActivationStateEngine = arg.activationStateEngine;
 }