Пример #1
0
        public void CanGetDynamicProperty()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var firstNameValue = pvm.DynamicFirstName;

            Assert.Equal("Cameron", firstNameValue);
        }
Пример #2
0
        public void CanDefineNewProperties()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");

            Assert.NotNull(firstNameProperty);
        }
Пример #3
0
        public void CanSetDynamicProperty()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            pvm.DynamicFirstName = "Cam";

            var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");

            Assert.Equal("Cam", firstNameProperty.GetValue(pvm).ToString());
        }
Пример #4
0
        public void CanDefineMappedProperty()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var addressProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("Address");

            var avm = addressProperty.GetValue(pvm);

            Assert.IsType<AddressViewModel>(avm);
        }
Пример #5
0
        public void CheckChangeEventDoesntFiresForDifferentModels()
        {
            Person p1 = CreatePerson();
            Person p2 = CreatePerson();
            PersonViewModel pvm1 = new PersonViewModel(p1);
            PersonViewModel pvm2 = new PersonViewModel(p2);

            var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");

            var eventMonitor = EventMonitor.Monitor(pvm2, firstNameProperty);

            firstNameProperty.SetValue(pvm1, "Cam");

            eventMonitor.AssertFired(0);
        }
Пример #6
0
        public void CompositePropertyFiresOnChangedEvent()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");
            var lastNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("LastName");
            var fullNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FullName");

            var eventMonitor = EventMonitor.Monitor(pvm, fullNameProperty);

            // Since WPF would get the property at least once, which is where ModelFuu registers
            // what properties are relevant to watch, we need to get the value at least once.
            fullNameProperty.GetValue(pvm);

            firstNameProperty.SetValue(pvm, "Cam");
            lastNameProperty.SetValue(pvm, "Mac");

            eventMonitor.AssertFired(2);
        }
Пример #7
0
 private static string GetFullName(PersonViewModel instance)
 {
     return string.Format("{0} {1}", personProperties.GetValue(p => p.FirstName, instance), personProperties.GetValue(p => p.LastName, instance));
 }
Пример #8
0
        public void CompositePropertyHasCorrectValue()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var fullNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FullName");

            Assert.Equal("Cameron MacFarland", fullNameProperty.GetValue(pvm));
        }
Пример #9
0
        public void PropertiesAreSavedBack()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            Person p2 = new Person();
            pvm.Save(p2);

            Assert.Equal(p.FirstName, p2.FirstName);
            Assert.Equal(p.LastName, p2.LastName);
            Assert.NotNull(p2.Address);
            Assert.Equal(p.Address.Street, p2.Address.Street);
            Assert.Equal(p.Address.City, p2.Address.City);
            Assert.Equal(p.Address.State, p2.Address.State);
        }
Пример #10
0
        public void ObjectsUsingModelPropertiesAreCleanedUp()
        {
            TestUtils.TestMemoryLeak(() =>
            {
                Person p = CreatePerson();
                PersonViewModel pvm = new PersonViewModel(p);

                var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");
                var lastNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("LastName");
                var fullNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FullName");

                // Since WPF would get the property at least once, which is where ModelFuu registers
                // events and stuff. So get the values to make sure it's hooked up properly.
                firstNameProperty.GetValue(pvm);
                lastNameProperty.GetValue(pvm);
                fullNameProperty.GetValue(pvm);

                return pvm;
            });
        }
Пример #11
0
        public void NewPropertyIsSameAsOriginal()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");

            Assert.Equal("Cameron", firstNameProperty.GetValue(pvm).ToString());
        }
Пример #12
0
        public void NewPropertyFiresOnChangedEvent()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");

            var eventMonitor = EventMonitor.Monitor(pvm, firstNameProperty);

            firstNameProperty.SetValue(pvm, "Cam");

            eventMonitor.AssertFired(1);
        }
Пример #13
0
        public void NewPropertyCanBeEdited()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName");

            firstNameProperty.SetValue(pvm, "Cam");

            Assert.Equal("Cam", firstNameProperty.GetValue(pvm).ToString());
        }
Пример #14
0
        public void MappedPropertyReturnsSameValue()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var addressProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("Address");

            Assert.Same(addressProperty.GetValue(pvm), addressProperty.GetValue(pvm));
        }
Пример #15
0
        public void MappedPropertyDefinesItselfAsTheMappedType()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var addressProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("Address");

            Assert.Equal(typeof(AddressViewModel), addressProperty.PropertyType);
        }
Пример #16
0
        public void MappedPropertyDefinesItselfAsAModelProperty()
        {
            Person p = CreatePerson();
            PersonViewModel pvm = new PersonViewModel(p);

            var addressProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("Address");

            Assert.IsType<ModelFuu.Internals.ModelPropertyDescriptor>(addressProperty);
        }