static App() { Weaver = new NotifyingObjectWeaver(); var dispatcher = new Dispatcher(Deployment.Current.Dispatcher); DispatcherManager.Current = dispatcher; var autoKernel = new AutoKernel(); autoKernel.AddGenericBindingResolver(ResolveViewModel); Kernel = autoKernel; }
public void ChangingAPropertyWithoutDispatcherAccessShouldCallBeginInvoke() { var dispatcher = new Dispatcher(); dispatcher.CheckAccessReturnValue = false; DispatcherManager.Current = dispatcher; var weaver = new NotifyingObjectWeaver(); var proxyType = weaver.GetProxyType<MyViewModel>(); var instance = Activator.CreateInstance(proxyType) as MyViewModel; var notifyingObject = instance as INotifyPropertyChanged; var fired = false; notifyingObject.PropertyChanged += (s, e) => fired = true; instance.SomeInt = 5; Assert.That(dispatcher.BeginInvokeDelegateCalled, Is.True); }
public void TypesShouldHaveXmlRootAttributeAdded() { var dispatcher = new Dispatcher(); DispatcherManager.Current = dispatcher; var weaver = new NotifyingObjectWeaver(); var proxyType = weaver.GetProxyType<SimpleObject>(); var hasXmlRootAttribute = false; var elementName = string.Empty; var attributes = proxyType.GetCustomAttributes(true); foreach( var attribute in attributes ) { if( attribute is XmlRootAttribute ) { elementName = ((XmlRootAttribute)attribute).ElementName; hasXmlRootAttribute = true; } } Assert.That(hasXmlRootAttribute,Is.True); Assert.That(elementName,Is.EqualTo(typeof(SimpleObject).Name)); }
public void ToStringShouldNotBeOverridenIfBaseTypeOverridesIt() { var dispatcher = new Dispatcher(); DispatcherManager.Current = dispatcher; var weaver = new NotifyingObjectWeaver(); var proxyType = weaver.GetProxyType<SimpleObjectOverridingToString>(); var instance = Activator.CreateInstance(proxyType); var toStringResult = instance.ToString(); Assert.That(toStringResult, Is.EqualTo(SimpleObjectOverridingToString.ToStringReturn)); }
public void ToStringShouldBeOverriddenAndReturnTheBaseTypeFullNameIfNotOverriddenInBaseTyp() { var dispatcher = new Dispatcher(); DispatcherManager.Current = dispatcher; var weaver = new NotifyingObjectWeaver(); var proxyType = weaver.GetProxyType<SimpleObject>(); var instance = Activator.CreateInstance(proxyType); var toStringResult = instance.ToString(); Assert.That(toStringResult, Is.EqualTo(typeof(SimpleObject).ToString())); }
public void InterfacesImplementedByBaseTypeShouldBePresentInProxy() { var dispatcher = new Dispatcher(); DispatcherManager.Current = dispatcher; var weaver = new NotifyingObjectWeaver(); var proxyType = weaver.GetProxyType<TypeImplementingOtherInterface>(); var interfaceType = proxyType.GetInterface(typeof(ISomeInterface).Name, true); Assert.That(interfaceType, Is.Not.Null); }