public void Inherit_And_Modify_A_BaseView(ViewType viewType, bool attribute, string platformName) { var platform = GetPlatform(platformName); ModelViewInheritanceUpdater.Disabled = true; var models = GetModels(viewType, attribute, platform); var application = platform.NewApplication <ModelViewInheritanceModule>(); var module = CreateModelViewIneritanceModule(viewType, attribute, application, false); var testModule1 = new TestModule1 { DiffsStore = new StringModelStore(models[0]) }; var baseBoTypes = new[] { typeof(ABaseMvi), typeof(TagMvi) }; var boTypes = new[] { typeof(AMvi), typeof(FileMvi) }; testModule1.AdditionalExportedTypes.AddRange(baseBoTypes); var testModule2 = new TestModule2 { DiffsStore = new StringModelStore(models[1]) }; testModule2.AdditionalExportedTypes.AddRange(boTypes); application.SetupDefaults(module, testModule1, testModule2, new TestModule3 { DiffsStore = new StringModelStore(models[2]) }); var inheritAndModifyBaseView = new InheritAndModifyBaseView(application, viewType, attribute); inheritAndModifyBaseView.Verify(application.Model); application.Dispose(); }
public void Inherit_And_Modify_A_BaseView(ViewType viewType, bool attribute) { ModelViewInheritanceUpdater.Disabled = true; var application = new XafApplicationMock().Object; var modelViewIneritanceModule = CreateModelViewIneritanceModule(viewType, attribute, application); var baseBoTypes = new[] { typeof(ABaseMvi), typeof(TagMvi) }; var boTypes = new[] { typeof(AMvi), typeof(FileMvi) }; modelViewIneritanceModule.AdditionalExportedTypes.AddRange(baseBoTypes.Concat(boTypes)); application.SetupDefaults(modelViewIneritanceModule); var inheritAndModifyBaseView = new InheritAndModifyBaseView(application, viewType, attribute); var models = inheritAndModifyBaseView.GetModels().ToArray(); ModelViewInheritanceUpdater.Disabled = false; application = new XafApplicationMock().Object; modelViewIneritanceModule = CreateModelViewIneritanceModule(viewType, attribute, application); var testModule1 = new TestModule1 { DiffsStore = new StringModelStore(models[0]) }; testModule1.AdditionalExportedTypes.AddRange(baseBoTypes); var testModule2 = new TestModule2 { DiffsStore = new StringModelStore(models[1]) }; testModule2.AdditionalExportedTypes.AddRange(boTypes); application.SetupDefaults(modelViewIneritanceModule, testModule1, testModule2, new TestModule3 { DiffsStore = new StringModelStore(models[2]) }); inheritAndModifyBaseView.Verify(application.Model); }
public void Inherit_And_Modify_A_BaseView(ViewType viewType, bool attribute, string platformName) { var platform = GetPlatform(platformName); var application = platform.NewApplication <ModelViewInheritanceModule>(); var module = CreateModelViewInheritanceModule(viewType, attribute, application, false); var testModule1 = new TestModule1 { DiffsStore = new ResourcesModelStore(GetType().Assembly, "Model0") }; var baseBoTypes = new[] { typeof(ABaseMvi), typeof(TagMvi) }; var boTypes = new[] { typeof(AMvi), typeof(FileMvi) }; testModule1.AdditionalExportedTypes.AddRange(baseBoTypes); var testModule2 = new TestModule2 { DiffsStore = new ResourcesModelStore(GetType().Assembly, "Model1") }; testModule2.AdditionalExportedTypes.AddRange(boTypes); application.SetupDefaults(module, testModule1, testModule2, new TestModule3 { DiffsStore = new ResourcesModelStore(GetType().Assembly, "Model2") }); var modelClassB = application.Model.BOModel.GetClass(typeof(AMvi)); var viewB = viewType == ViewType.ListView? modelClassB.DefaultListView.AsObjectView:modelClassB.DefaultDetailView; viewB.Caption.ShouldBe("Changed"); viewB.AllowDelete.ShouldBe(false); if (viewB is IModelListView modelListView) { modelListView.Columns[nameof(ABaseMvi.Description)].Caption.ShouldBe("New"); modelListView.Columns[nameof(ABaseMvi.Name)].ShouldBeNull(); modelListView.Columns[nameof(ABaseMvi.Oid)].Index.ShouldBe(100); ((IModelViewHiddenActions)modelListView).HiddenActions.Any().ShouldBeTrue(); } else { var modelDetailView = ((IModelDetailView)viewB); modelDetailView.Layout.GetNodeByPath($"Main/SimpleEditors/{nameof(AMvi)}/{nameof(ABaseMvi.Name)}").ShouldBeNull(); modelDetailView.Layout.GetNodeByPath($"Main/SimpleEditors/{nameof(ABaseMvi)}/{nameof(ABaseMvi.Description)}").ShouldNotBeNull(); modelDetailView.Layout.GetNodeByPath("Main/Oid").ShouldNotBeNull(); modelDetailView.Layout.GetNodeByPath("Main/Tags_Groups").ShouldBeNull(); modelDetailView.Layout.GetNodeByPath("Main/Tabs/FileMvis/FileMvis").ShouldNotBeNull(); modelDetailView.Layout.GetNodeByPath("Main/Tabs/Tags/Tags"); modelDetailView.Layout.GetNode("Main").NodeCount.ShouldBe(3); } application.Dispose(); }