Пример #1
0
    public async Task ForkedContext()
    {
        var value = new GenericParameterHelper();

        this.asyncLocal.Value = value;
        await Task.WhenAll(
            Task.Run(delegate
        {
            Assert.Same(value, this.asyncLocal.Value);
            this.asyncLocal.Value = null;
            Assert.Null(this.asyncLocal.Value);
        }),
            Task.Run(delegate
        {
            Assert.Same(value, this.asyncLocal.Value);
            this.asyncLocal.Value = null;
            Assert.Null(this.asyncLocal.Value);
        }));

        Assert.Same(value, this.asyncLocal.Value);
        this.asyncLocal.Value = null;
        Assert.Null(this.asyncLocal.Value);
    }
Пример #2
0
        public void TestValueEvent()
        {
            GenericParameterHelper para = new GenericParameterHelper();
            TextValuePair <GenericParameterHelper> target =
                new TextValuePair <GenericParameterHelper>("AA", null);
            bool changing = false;
            bool changed  = false;
            bool error    = false;

            target.PropertyChanging += (sender, e) =>
            {
                if (e.PropertyName == "Value")
                {
                    changing = true;
                    if (target.Value != null)
                    {
                        error = true;
                    }
                }
            };
            target.PropertyChanged += (sender, e) =>
            {
                if (changing && e.PropertyName == "Value")
                {
                    changed = true;
                    if (target.Value != para)
                    {
                        error = true;
                    }
                }
            };
            target.Value = para;
            Assert.IsFalse(error);
            Assert.IsTrue(changing);
            Assert.IsTrue(changed);
        }
Пример #3
0
        public void TestEditableObjectTextAndValue()
        {
            GenericParameterHelper para1 = new GenericParameterHelper(1);
            GenericParameterHelper para2 = new GenericParameterHelper(2);
            TextValuePair <GenericParameterHelper> target =
                new TextValuePair <GenericParameterHelper>("AA", para1);
            IEditableObject obj      = (IEditableObject)target;
            bool            changing = false;
            bool            changed  = false;
            bool            error    = false;

            target.PropertyChanging += (sender, e) =>
            {
                if (e.PropertyName == string.Empty)
                {
                    changing = true;
                    if (target.Text != "AA" || target.Value != para1)
                    {
                        error = true;
                    }
                }
            };
            target.PropertyChanged += (sender, e) =>
            {
                if (changing && e.PropertyName == string.Empty)
                {
                    changed = true;
                    if (target.Text != "BB" || target.Value != para2)
                    {
                        error = true;
                    }
                }
            };
            // Test Text And Value
            obj.BeginEdit();
            target.Text  = "BB";
            target.Value = para2;
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.CancelEdit();
            Assert.AreEqual(target.Text, "AA");
            Assert.AreEqual(target.Value, para1);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.EndEdit();
            Assert.AreEqual(target.Text, "AA");
            Assert.AreEqual(target.Value, para1);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.CancelEdit();
            Assert.AreEqual(target.Text, "AA");
            Assert.AreEqual(target.Value, para1);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.BeginEdit();
            target.Text  = "BB";
            target.Value = para2;
            obj.EndEdit();
            Assert.AreEqual(target.Text, "BB");
            Assert.AreEqual(target.Value, para2);
            Assert.IsFalse(error);
            Assert.IsTrue(changing);
            Assert.IsTrue(changed);
            changing = false;
            changed  = false;
            obj.CancelEdit();
            Assert.AreEqual(target.Text, "BB");
            Assert.AreEqual(target.Value, para2);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            // Test Text And Value without change
            changing = changed = error = false;
            obj.BeginEdit();
            target.Text  = "BB";
            target.Value = para2;
            obj.EndEdit();
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
        }
Пример #4
0
        public void entityCollection_set_Item_invalid_index_should_raise_ArgumentOutOfRangeException()
        {
            var target = this.CreateMock <GenericParameterHelper>();

            target[2] = new GenericParameterHelper();
        }
Пример #5
0
        public void Match_Succeeds_When_Value_To_Match_And_Reference_Are_Same_Instance()
        {
            var obj = new GenericParameterHelper();

            Assert.IsTrue(NewInstance(obj).Matches(obj));
        }
Пример #6
0
        public void TestEditableObjectValue()
        {
            var para1  = new GenericParameterHelper(1);
            var para2  = new GenericParameterHelper(2);
            var target =
                new TextValuePair <GenericParameterHelper>("", para1);
            var obj      = (IEditableObject)target;
            var changing = false;
            var changed  = false;
            var error    = false;

            target.PropertyChanging += (sender, e) =>
            {
                if (e.PropertyName == "Value")
                {
                    changing = true;
                    if (target.Value != para1)
                    {
                        error = true;
                    }
                }
            };
            target.PropertyChanged += (sender, e) =>
            {
                if (changing && e.PropertyName == "Value")
                {
                    changed = true;
                    if (target.Value != para2)
                    {
                        error = true;
                    }
                }
            };
            // Test Value
            obj.BeginEdit();
            target.Value = para2;
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.CancelEdit();
            Assert.AreEqual(target.Value, para1);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.EndEdit();
            Assert.AreEqual(target.Value, para1);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.CancelEdit();
            Assert.AreEqual(target.Value, para1);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            obj.BeginEdit();
            target.Value = para2;
            obj.EndEdit();
            Assert.AreEqual(target.Value, para2);
            Assert.IsFalse(error);
            Assert.IsTrue(changing);
            Assert.IsTrue(changed);
            changing = false;
            changed  = false;
            obj.CancelEdit();
            Assert.AreEqual(target.Value, para2);
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
            // Test Value without change
            changing = changed = error = false;
            obj.BeginEdit();
            target.Value = para2;
            obj.EndEdit();
            Assert.IsFalse(error);
            Assert.IsFalse(changing);
            Assert.IsFalse(changed);
        }
        public void Match_Fails_When_Value_To_Match_And_Reference_Are_The_Same_Instance_Of_A_Reference_Type_With_Value_Semantics()
        {
            var obj = new GenericParameterHelper(1);

            Assert.IsFalse(NewInstance(obj).Matches(obj));
        }
Пример #8
0
        public void Match_Succeeds_When_Value_To_Match_And_Reference_Are_The_Same_Instance_Of_A_Reference_Type_With_Value_Semantics()
        {
            var reference = new GenericParameterHelper(1);

            Assert.IsTrue(NewInstance(reference).Matches(reference));
        }