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 TestSaveLoadCustomWithParameters() { if (File.Exists(".model.ts")) { File.Delete(".model.ts"); } var original = new TestModule1(); Assert.True(original.has_parameter("test")); var params0 = original.parameters(); Assert.True(params0.ToArray().ToArray()[0].requires_grad); original.save(".model.ts"); var loaded = new TestModule1(); Assert.True(loaded.has_parameter("test")); var params1 = loaded.parameters(); Assert.True(params1.ToArray()[0].requires_grad); Assert.NotEqual(params0.ToArray(), params1); loaded.load(".model.ts"); var params2 = loaded.parameters(); Assert.True(params2.ToArray()[0].requires_grad); File.Delete(".model.ts"); Assert.Equal(params0, params2); }
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 Chained_Cloned_listview_merging(bool deepMerge) { string GetModel() { string xml; using (var xafApplication = Platform.Win.NewApplication <ModelViewInheritanceModule>()){ var inheritanceModule = DefaultModelViewInheritancerModule(xafApplication, true, typeof(CloneModelViewModule)); var model = inheritanceModule.Application.Model; var modelApplication = ((ModelApplicationBase)model).CreatorInstance.CreateModelApplication(); ModelApplicationHelper.AddLayer(((ModelApplicationBase)model), modelApplication); var elementListView = model.BOModel.GetClass(typeof(Element)).DefaultListView; elementListView.Columns[nameof(Element.Street)].Index = -1; var lvBase = ((IModelListView)model.Views[Element.ListViewBase]); var mergedDifferences = ((IModelObjectViewMergedDifferences)lvBase).MergedDifferences; var mergedDifference = mergedDifferences.AddNode <IModelMergedDifference>(); mergedDifference.View = elementListView; mergedDifferences = ((IModelObjectViewMergedDifferences)model.Views[Element.ListViewBaseNested]).MergedDifferences; mergedDifference = mergedDifferences.AddNode <IModelMergedDifference>(); mergedDifference.View = elementListView; mergedDifference.DeepMerge = deepMerge; if (!deepMerge) { mergedDifference = mergedDifferences.AddNode <IModelMergedDifference>(); mergedDifference.View = lvBase; } xml = modelApplication.Xml; ModelApplicationHelper.RemoveLayer((ModelApplicationBase)xafApplication.Model); } return(xml); } var modelXml = GetModel(); using (var newApplication = Platform.Win.NewApplication <ModelViewInheritanceModule>()){ var module = DefaultModelViewInheritancerModule(newApplication, false, typeof(CloneModelViewModule)); var testModule1 = new TestModule1 { DiffsStore = new StringModelStore(modelXml) }; testModule1.AdditionalExportedTypes.Add(typeof(Element)); newApplication.SetupDefaults(module, testModule1, new CloneModelViewModule()); var listViewBase = ((IModelListView)newApplication.Model.Views[Element.ListViewBase]); listViewBase.Columns[nameof(Element.Street)].Index.ShouldBe(-1); ((IModelListView)newApplication.Model.Views[Element.ListViewBaseNested]).Columns[nameof(Element.Street)].Index.ShouldBe(-1); } }
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(); }
public void Chained_Cloned_ListView_merging() { using var newApplication = Platform.Win.NewApplication <ModelViewInheritanceModule>(); var module = DefaultModelViewInheritanceModule(newApplication, false, typeof(CloneModelViewModule)); var testModule1 = new TestModule1 { DiffsStore = new ResourcesModelStore(GetType().Assembly, "ChainedListView") }; testModule1.AdditionalExportedTypes.Add(typeof(Element)); newApplication.SetupDefaults(module, testModule1, new CloneModelViewModule()); var listViewBase = ((IModelListView)newApplication.Model.Views[Element.ListViewBase]); listViewBase.Columns[nameof(Element.Street)].Index.ShouldBe(-1); ((IModelListView)newApplication.Model.Views[Element.ListViewBaseNested]).Columns[nameof(Element.Street)].Index.ShouldBe(-1); }
public static void ModuleTypeListExtentionsTests() => Describe(nameof(ModuleTypeListExtentions), () => { _ = new TestModule(); //Fix CA1812 _ = new TestModule1(); //Fix CA1812