Пример #1
0
        public void RegisterInheritableAndNoInheritablPropertiesProperty()
        {
            using(var form = new Form()) {
                var button1 = new Button();
                var button2 = new Button();
                form.Controls.Add(button1);
                form.Controls.Add(button2);

                Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.Null);
                Assert.That(button2.GetValue(TestPropertyContainer.TestProperty), Is.Null);
                Assert.That(form.GetValue(TestPropertyContainer.TestProperty), Is.Null);

                button1.SetValue(TestPropertyContainer.TestProperty, "button1");
                button1.SetValue(TestPropertyContainer.Test2Property, "button1_");
                Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("button1"));
                Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button1_"));

                form.SetValue(TestPropertyContainer.TestProperty, "form");
                form.SetValue(TestPropertyContainer.Test2Property, "form2");
                Assert.That(form.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("form"));
                Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("button1"));
                Assert.That(button2.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("form"));
                Assert.That(form.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("form2"));
                Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button1_"));
                Assert.That(button2.GetValue(TestPropertyContainer.Test2Property), Is.Null);

                Assert.That(button2.HasLocalValue(TestPropertyContainer.TestProperty), Is.False);
                Assert.That(button1.HasLocalValue(TestPropertyContainer.TestProperty), Is.True);

                button1.ClearValue(TestPropertyContainer.TestProperty);
                Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("form"));
                Assert.That(button1.HasLocalValue(TestPropertyContainer.TestProperty), Is.False);

                button1.ClearValue(TestPropertyContainer.Test2Property);
                Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.Null);
                Assert.That(button1.HasLocalValue(TestPropertyContainer.Test2Property), Is.False);

                button1.SetValue(TestPropertyContainer.Test2Property, "button1_");
                form.ClearValue(TestPropertyContainer.Test2Property);
                Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button1_"));

                form.SetValue(TestPropertyContainer.Test2Property, "form2");
                var button3 = new Button();
                form.Controls.Add(button3);
                Assert.That(button3.GetValue(TestPropertyContainer.Test2Property), Is.Null);

                button3.SetValue(TestPropertyContainer.Test2Property, "button3_");
                form.Controls.Remove(button3);
                Assert.That(button3.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button3_"));
            }
        }