public void CanGetDynamicProperty() { Person p = CreatePerson(); PersonViewModel pvm = new PersonViewModel(p); var firstNameValue = pvm.DynamicFirstName; Assert.Equal("Cameron", firstNameValue); }
public void CanDefineNewProperties() { Person p = CreatePerson(); PersonViewModel pvm = new PersonViewModel(p); var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName"); Assert.NotNull(firstNameProperty); }
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()); }
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); }
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); }
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); }
private static string GetFullName(PersonViewModel instance) { return string.Format("{0} {1}", personProperties.GetValue(p => p.FirstName, instance), personProperties.GetValue(p => p.LastName, instance)); }
public void CompositePropertyHasCorrectValue() { Person p = CreatePerson(); PersonViewModel pvm = new PersonViewModel(p); var fullNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FullName"); Assert.Equal("Cameron MacFarland", fullNameProperty.GetValue(pvm)); }
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); }
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; }); }
public void NewPropertyIsSameAsOriginal() { Person p = CreatePerson(); PersonViewModel pvm = new PersonViewModel(p); var firstNameProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("FirstName"); Assert.Equal("Cameron", firstNameProperty.GetValue(pvm).ToString()); }
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); }
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()); }
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)); }
public void MappedPropertyDefinesItselfAsTheMappedType() { Person p = CreatePerson(); PersonViewModel pvm = new PersonViewModel(p); var addressProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("Address"); Assert.Equal(typeof(AddressViewModel), addressProperty.PropertyType); }
public void MappedPropertyDefinesItselfAsAModelProperty() { Person p = CreatePerson(); PersonViewModel pvm = new PersonViewModel(p); var addressProperty = TestUtils.GetPropertyFromTypeDescriptor<PersonViewModel>("Address"); Assert.IsType<ModelFuu.Internals.ModelPropertyDescriptor>(addressProperty); }