示例#1
0
        public void Attach_NoStateNamesSet_DoesNothing()
        {
            Grid stateGrid = VisualStateHelper.CreateObjectWithStates <Grid>();
            DataStateBehavior dataStateBehavior = CreateEmptyDataStateBehavior();

            AttachBehavior(dataStateBehavior, stateGrid);
            // Attaching an empty DataStateBehavior should not cause any problems.
        }
示例#2
0
        private DataStateBehavior CreateDataStateBehaviorInFalseState()
        {
            DataStateBehavior dataStateBehavior = CreateDefaultDataStateBehavior();

            dataStateBehavior.Binding = CreateObject();
            dataStateBehavior.Value   = CreateObject();
            return(dataStateBehavior);
        }
示例#3
0
        private DataStateBehavior CreateDataStateBehaviorInTrueState()
        {
            DataStateBehavior dataStateBehavior = CreateDefaultDataStateBehavior();

            dataStateBehavior.Binding = ConditionMatchValue;
            dataStateBehavior.Value   = ConditionMatchValue;
            return(dataStateBehavior);
        }
示例#4
0
        public void TrueStateChangesToInvalidValue_ThrowsArgumentException()
        {
            Grid stateGrid = VisualStateHelper.CreateObjectWithStates <Grid>();
            DataStateBehavior dataStateBehavior = CreateEmptyDataStateBehavior();

            AttachBehavior(dataStateBehavior, stateGrid);
            dataStateBehavior.TrueState = "TrueState";
            dataStateBehavior.TrueState = "NonExistantState";
        }
示例#5
0
        private DataStateBehavior CreateDefaultDataStateBehavior()
        {
            DataStateBehavior dataStateBehavior = new DataStateBehavior()
            {
                TrueState  = VisualStateHelper.DefaultTrueStateName,
                FalseState = VisualStateHelper.DefaultFalseStateName,
            };

            return(dataStateBehavior);
        }
示例#6
0
        public void BindingChangesToNotMatchValue_TransitionsToFalseState()
        {
            Grid stateGrid = VisualStateHelper.CreateObjectWithStates <Grid>();
            DataStateBehavior      dataStateBehavior = CreateDataStateBehaviorInTrueState();
            VisualStateManagerStub vsmStub           = VisualStateHelper.AttachCustomVSM(stateGrid);

            AttachBehavior(dataStateBehavior, stateGrid);

            dataStateBehavior.Binding = CreateObject();
            Assert.AreEqual(vsmStub.LastStateName, VisualStateHelper.DefaultFalseStateName, "Binding change to no longer match Value should have caused a transition to the FalseState");
        }
示例#7
0
        public void ValueChangesToMatchBinding_TransitionsToTrueState()
        {
            Grid stateGrid = VisualStateHelper.CreateObjectWithStates <Grid>();
            DataStateBehavior      dataStateBehavior = CreateDataStateBehaviorInFalseState();
            VisualStateManagerStub vsmStub           = VisualStateHelper.AttachCustomVSM(stateGrid);

            AttachBehavior(dataStateBehavior, stateGrid);

            dataStateBehavior.Value = dataStateBehavior.Binding;
            Assert.AreEqual(vsmStub.LastStateName, VisualStateHelper.DefaultTrueStateName, "Value change to match Binding should have caused a transition to the TrueState");
        }
示例#8
0
        public void FalseStateChanges_TransitionsToNewFalseState()
        {
            Grid stateGrid = VisualStateHelper.CreateObjectWithStates <Grid>();
            DataStateBehavior      dataStateBehavior = CreateDataStateBehaviorInFalseState();
            VisualStateManagerStub vsmStub           = VisualStateHelper.AttachCustomVSM(stateGrid);

            AttachBehavior(dataStateBehavior, stateGrid);

            dataStateBehavior.FalseState = VisualStateHelper.ArbitraryThirdStateName;
            Assert.AreEqual(vsmStub.LastStateName, VisualStateHelper.ArbitraryThirdStateName, "Change in FalseState should have caused a transition to the new state, as Binding does not match Value.");
        }
示例#9
0
        public void Attach_FalseStateDoesNotExist_ThrowsArgumentException()
        {
            Grid stateGrid = VisualStateHelper.CreateObjectWithStates <Grid>();
            DataStateBehavior dataStateBehavior = CreateEmptyDataStateBehavior();

            dataStateBehavior.FalseState = "NonExistantState";
            using (new StubWindow(stateGrid))
            {
                AttachBehavior(dataStateBehavior, stateGrid);
            }
        }