コード例 #1
0
            public void ReturnsFalseForNonExistingMember()
            {
                var adapter = new ReflectionObjectAdapter();
                var model   = new TestClassWithRegularMembers();

                Assert.IsFalse(adapter.SetMemberValue(model, "NotExistingMember", "John"));
            }
コード例 #2
0
            public void ReturnsFalseForNonExistingMember()
            {
                var    adapter = new ReflectionObjectAdapter();
                var    model   = new TestClassWithRegularMembers();
                string value   = string.Empty;

                Assert.IsFalse(adapter.GetMemberValue(model, "NotExistingMember", out value));
            }
コード例 #3
0
            public void SetsFieldValue()
            {
                var adapter = new ReflectionObjectAdapter();
                var model   = new TestClassWithRegularMembers();

                Assert.IsTrue(adapter.SetMemberValue(model, nameof(TestClassWithRegularMembers.StringField), "John"));
                Assert.AreEqual("John", model.StringField);
            }
コード例 #4
0
            public void SetsRegularPropertyValue()
            {
                var adapter = new ExpressionTreeObjectAdapter();
                var model   = new TestClassWithRegularMembers();

                Assert.IsTrue(adapter.SetMemberValue(model, nameof(TestClassWithRegularMembers.StringProperty), "John"));
                Assert.AreEqual("John", model.StringProperty);
            }
コード例 #5
0
            public void ReturnsFalseForNonExistingProperty()
            {
                var fastMemberInvoker = new FastMemberInvoker <TestClassWithRegularMembers>();

                var testClass = new TestClassWithRegularMembers();

                Assert.IsFalse(fastMemberInvoker.SetPropertyValue <string>(testClass, "NonExistingProperty", "John"));
            }
コード例 #6
0
            public void UpdatesStringProperty()
            {
                var fastMemberInvoker = new FastMemberInvoker <TestClassWithRegularMembers>();

                var testClass = new TestClassWithRegularMembers();

                Assert.IsTrue(fastMemberInvoker.SetPropertyValue <string>(testClass, nameof(TestClassWithRegularMembers.StringProperty), "John"));
                Assert.AreEqual("John", testClass.StringProperty);
            }
コード例 #7
0
            public void ReturnsFalseForNonExistingField()
            {
                var fastMemberInvoker = new FastMemberInvoker <TestClassWithRegularMembers>();

                var testClass = new TestClassWithRegularMembers
                {
                    StringField = "John"
                };

                Assert.IsFalse(fastMemberInvoker.TryGetFieldValue <string>(testClass, "NonExistingField", out var stringValue));
            }
コード例 #8
0
            public void ReturnsStringProperty()
            {
                var fastMemberInvoker = new FastMemberInvoker <TestClassWithRegularMembers>();

                var testClass = new TestClassWithRegularMembers
                {
                    StringProperty = "John"
                };

                Assert.IsTrue(fastMemberInvoker.TryGetPropertyValue <string>(testClass, nameof(TestClassWithRegularMembers.StringProperty), out var stringValue));
                Assert.AreEqual("John", stringValue);
            }
コード例 #9
0
            public void GetsFieldValue()
            {
                var adapter = new ReflectionObjectAdapter();
                var model   = new TestClassWithRegularMembers
                {
                    StringField = "John"
                };

                string value = string.Empty;

                Assert.IsTrue(adapter.GetMemberValue(model, nameof(TestClassWithRegularMembers.StringField), out value));
                Assert.AreEqual("John", value);
            }
コード例 #10
0
            public void GetsRegularPropertyValue()
            {
                var adapter = new ExpressionTreeObjectAdapter();
                var model   = new TestClassWithRegularMembers
                {
                    StringProperty = "John"
                };

                string value = string.Empty;

                Assert.IsTrue(adapter.GetMemberValue(model, nameof(TestClassWithRegularMembers.StringProperty), out value));
                Assert.AreEqual("John", value);
            }
コード例 #11
0
            public void TestThreadSafety()
            {
                // https://github.com/Catel/Catel/issues/1518

                var fastMemberInvoker = new FastMemberInvoker <TestClassWithRegularMembers>();
                var instance          = new TestClassWithRegularMembers();

                var tasks = new List <Task>();

                for (int i = 0; i < 30; i++)
                {
                    tasks.Add(TaskHelper.Run(() => fastMemberInvoker.TryGetPropertyValue(instance, $"Int{i + 1:D2}", out int _)));
                }

                Task.WaitAll(tasks.ToArray());
            }