public void Test_MvxViewModelViewTypeFinder() { ClearAll(); var assembly = this.GetType().Assembly; var viewModelNameLookup = new MvxViewModelByNameLookup(); viewModelNameLookup.AddAll(assembly); var nameMapping = new MvxPostfixAwareViewToViewModelNameMapping("View", "Oddness"); var test = new MvxViewModelViewTypeFinder(viewModelNameLookup, nameMapping); // test for positives var result = test.FindTypeOrNull(typeof(Test1View)); Assert.AreEqual(typeof(Test1ViewModel), result); result = test.FindTypeOrNull(typeof(NotTest2View)); Assert.AreEqual(typeof(Test2ViewModel), result); result = test.FindTypeOrNull(typeof(NotTest3View)); Assert.AreEqual(typeof(Test3ViewModel), result); result = test.FindTypeOrNull(typeof(OddNameOddness)); Assert.AreEqual(typeof(OddNameViewModel), result); // test for negatives result = test.FindTypeOrNull(typeof(AbstractTest1View)); Assert.IsNull(result); result = test.FindTypeOrNull(typeof(NotReallyAView)); Assert.IsNull(result); }
public void Test_Builder() { ClearAll(); var assembly = this.GetType().Assembly; var viewModelNameLookup = new MvxViewModelByNameLookup(new[] {assembly}); var finder = new MvxViewModelViewTypeFinder(viewModelNameLookup); Ioc.RegisterSingleton<IMvxViewModelTypeFinder>(finder); var builder = new MvxViewModelViewLookupBuilder(); var result = builder.Build(new[] {assembly}); Assert.AreEqual(3, result.Count); Assert.AreEqual(typeof (Test1View), result[typeof (Test1ViewModel)]); Assert.AreEqual(typeof (NotTest2View), result[typeof (Test2ViewModel)]); Assert.AreEqual(typeof (NotTest3View), result[typeof (Test3ViewModel)]); }
public void Test_Builder() { ClearAll(); var assembly = this.GetType().Assembly; var viewModelNameLookup = new MvxViewModelByNameLookup(); viewModelNameLookup.AddAll(assembly); var nameMapping = new MvxPostfixAwareViewToViewModelNameMapping("View", "Oddness"); var finder = new MvxViewModelViewTypeFinder(viewModelNameLookup, nameMapping); Ioc.RegisterSingleton<IMvxViewModelTypeFinder>(finder); var builder = new MvxViewModelViewLookupBuilder(); var result = builder.Build(new[] {assembly}); Assert.AreEqual(4, result.Count); Assert.AreEqual(typeof (Test1View), result[typeof (Test1ViewModel)]); Assert.AreEqual(typeof (NotTest2View), result[typeof (Test2ViewModel)]); Assert.AreEqual(typeof (NotTest3View), result[typeof (Test3ViewModel)]); Assert.AreEqual(typeof(OddNameOddness), result[typeof(OddNameViewModel)]); }
public void Test_MvxViewModelViewTypeFinder() { ClearAll(); var assembly = this.GetType().Assembly; var viewModelNameLookup = new MvxViewModelByNameLookup(new[] {assembly}); var test = new MvxViewModelViewTypeFinder(viewModelNameLookup); // test for positives var result = test.FindTypeOrNull(typeof (Test1View)); Assert.AreEqual(typeof (Test1ViewModel), result); result = test.FindTypeOrNull(typeof (NotTest2View)); Assert.AreEqual(typeof (Test2ViewModel), result); result = test.FindTypeOrNull(typeof (NotTest3View)); Assert.AreEqual(typeof (Test3ViewModel), result); // test for negatives result = test.FindTypeOrNull(typeof (AbstractTest1View)); Assert.IsNull(result); result = test.FindTypeOrNull(typeof (NotReallyAView)); Assert.IsNull(result); }
/* protected virtual Assembly[] GetPluginOwningAssemblies() { var assemblies = new List<Assembly>(); assemblies.AddRange(GetViewAssemblies()); //ideally we would also add ViewModelAssemblies here too :/ //assemblies.AddRange(GetViewModelAssemblies()); return assemblies.Distinct().ToArray(); } */ protected virtual void InitialiseViewModelTypeFinder() { var viewModelAssemblies = GetViewModelAssemblies(); var viewModelByNameLookup = new MvxViewModelByNameLookup(viewModelAssemblies); Mvx.RegisterSingleton<IMvxViewModelByNameLookup>(viewModelByNameLookup); var finder = new MvxViewModelViewTypeFinder(viewModelByNameLookup); Mvx.RegisterSingleton<IMvxViewModelTypeFinder>(finder); }
protected virtual void InitializeViewModelTypeFinder() { var viewModelByNameLookup = new MvxViewModelByNameLookup(); var viewModelAssemblies = GetViewModelAssemblies(); foreach (var assembly in viewModelAssemblies) { viewModelByNameLookup.AddAll(assembly); } Mvx.RegisterSingleton<IMvxViewModelByNameLookup>(viewModelByNameLookup); Mvx.RegisterSingleton<IMvxViewModelByNameRegistry>(viewModelByNameLookup); var nameMappingStrategy = CreateViewToViewModelNaming(); var finder = new MvxViewModelViewTypeFinder(viewModelByNameLookup, nameMappingStrategy); Mvx.RegisterSingleton<IMvxViewModelTypeFinder>(finder); }