public static IDataListItemModel CreateDataListModel(string displayname, string description = "", IDataListItemModel parent = null, OptomizedObservableCollection<IDataListItemModel> children = null, bool hasError = false, string errorMessage = "", bool isEditable = true, bool isVisable = true, bool isSelected = false, enDev2ColumnArgumentDirection dev2ColumnArgumentDirection = enDev2ColumnArgumentDirection.None) { IDataListItemModel dataListModel = new DataListItemModel(displayname, dev2ColumnArgumentDirection, description, parent, children, hasError, errorMessage, isEditable, isVisable, isSelected); if(parent != null && !String.IsNullOrEmpty(displayname)) { dataListModel.Name = parent.DisplayName + "()." + displayname; } return dataListModel; }
public void AddMissingDataListItemsAndThenAddManualy_AddRecordSetWhenDataListContainsRecordsertWithSameName() { Setup(); _dataListViewModel.RecsetCollection.Clear(); _dataListViewModel.ScalarCollection.Clear(); IList<IDataListVerifyPart> parts = new List<IDataListVerifyPart>(); var part = new Mock<IDataListVerifyPart>(); part.Setup(c => c.Recordset).Returns("ab"); part.Setup(c => c.DisplayValue).Returns("[[ab()]]"); part.Setup(c => c.Description).Returns(""); part.Setup(c => c.IsScalar).Returns(false); part.Setup(c => c.Field).Returns(""); parts.Add(part.Object); var part2 = new Mock<IDataListVerifyPart>(); part2.Setup(c => c.Recordset).Returns("ab"); part2.Setup(c => c.DisplayValue).Returns("[[ab().c]]"); part2.Setup(c => c.Description).Returns(""); part2.Setup(c => c.IsScalar).Returns(false); part2.Setup(c => c.Field).Returns("c"); parts.Add(part2.Object); _dataListViewModel.AddMissingDataListItems(parts, false); IDataListItemModel item = new DataListItemModel("ab().c"); item.Name = "c"; item.Parent = _dataListViewModel.RecsetCollection[0]; _dataListViewModel.RecsetCollection[0].Children.Insert(1, item); _dataListViewModel.RemoveBlankRows(item); _dataListViewModel.AddRecordsetNamesIfMissing(); _dataListViewModel.ValidateNames(item); Assert.AreEqual(true, _dataListViewModel.RecsetCollection[0].Children[0].HasError); Assert.AreEqual(StringResources.ErrorMessageDuplicateValue, _dataListViewModel.RecsetCollection[0].Children[0].ErrorMessage); Assert.AreEqual(true, _dataListViewModel.RecsetCollection[0].Children[1].HasError); Assert.AreEqual(StringResources.ErrorMessageDuplicateValue, _dataListViewModel.RecsetCollection[0].Children[1].ErrorMessage); }
public void SetUnusedDataListItemsWhenTwoRecsetsSameNameExpectedBothMarkedAsUnused() { //---------------------------Setup---------------------------------------------------------- Setup(); IList<IDataListVerifyPart> parts = new List<IDataListVerifyPart>(); var part1 = new Mock<IDataListVerifyPart>(); part1.Setup(c => c.Recordset).Returns("testing"); part1.Setup(c => c.DisplayValue).Returns("[[testing]]"); part1.Setup(c => c.Description).Returns("A state in a republic"); part1.Setup(c => c.IsScalar).Returns(false); var part2 = new Mock<IDataListVerifyPart>(); part2.Setup(c => c.Recordset).Returns("testing"); part2.Setup(c => c.DisplayValue).Returns("[[testing]]"); part2.Setup(c => c.Description).Returns("Duplicate testing"); part2.Setup(c => c.IsScalar).Returns(false); parts.Add(part1.Object); parts.Add(part2.Object); IDataListItemModel mod = new DataListItemModel("testing"); mod.Children.Add(new DataListItemModel("f1", parent: mod)); IDataListItemModel mod2 = new DataListItemModel("testing"); mod2.Children.Add(new DataListItemModel("f2", parent: mod2)); _dataListViewModel.RecsetCollection.Add(mod); _dataListViewModel.RecsetCollection.Add(mod2); //-------------------------Execute Test ------------------------------------------ _dataListViewModel.SetIsUsedDataListItems(parts, false); //-------------------------Assert Resule------------------------------------------ int actual = _dataListViewModel.DataList.Count(model => !model.IsUsed && model.IsRecordset); Assert.AreEqual(2, actual); }
IDataListItemModel SetupForValidateNamesDuplicateScalarTests() { Setup(); _dataListViewModel.RecsetCollection.Clear(); _dataListViewModel.ScalarCollection.Clear(); IDataListItemModel item = new DataListItemModel("ab"); item.Name = "ab"; _dataListViewModel.ScalarCollection.Insert(0, item); return item; }
IDataListItemModel SetupForValidateNamesDuplicateRecordSetFieldsTests() { Setup(); _dataListViewModel.RecsetCollection.Clear(); _dataListViewModel.ScalarCollection.Clear(); IList<IDataListVerifyPart> parts = new List<IDataListVerifyPart>(); var part = new Mock<IDataListVerifyPart>(); part.Setup(c => c.Recordset).Returns("ab"); part.Setup(c => c.DisplayValue).Returns("[[ab()]]"); part.Setup(c => c.Description).Returns(""); part.Setup(c => c.IsScalar).Returns(false); part.Setup(c => c.Field).Returns(""); parts.Add(part.Object); var part2 = new Mock<IDataListVerifyPart>(); part2.Setup(c => c.Recordset).Returns("ab"); part2.Setup(c => c.DisplayValue).Returns("[[ab().c]]"); part2.Setup(c => c.Description).Returns(""); part2.Setup(c => c.IsScalar).Returns(false); part2.Setup(c => c.Field).Returns("c"); parts.Add(part2.Object); _dataListViewModel.AddMissingDataListItems(parts, false); IDataListItemModel item = new DataListItemModel("ab().c"); item.Name = "c"; item.Parent = _dataListViewModel.RecsetCollection[0]; return item; }
public void DataListViewModel_SearchText_MatchingScalars_ShouldSetScalarVisible() { //------------Setup for test-------------------------- var dataListViewModel = new DataListViewModel(new Mock<IEventAggregator>().Object); const string scalarName = "scalar"; var scalarItem = new DataListItemModel(scalarName) { IsVisable = false }; dataListViewModel.ScalarCollection.Add(scalarItem); //------------Execute Test--------------------------- dataListViewModel.SearchText = "sca"; //------------Assert Results------------------------- Assert.IsTrue(dataListViewModel.ScalarCollection[0].IsVisable); }
public static IDataListItemModel CreateDataListModel(string displayname, string description, enDev2ColumnArgumentDirection dev2ColumnArgumentDirection = enDev2ColumnArgumentDirection.None, IDataListItemModel parent = null, OptomizedObservableCollection<IDataListItemModel> children = null, bool hasError = false, string errorMessage = "", bool isEditable = true, bool isVisable = true, bool isSelected = false) { IDataListItemModel dataListModel = new DataListItemModel(displayname, dev2ColumnArgumentDirection, description, parent, children, hasError, errorMessage, isEditable, isVisable, isSelected); return dataListModel; }
public void AddMissingDataListItemsWithUnusedDataListItemsExpectedItemsToBeSetToNotUsed() { var eventAggregator = new Mock<IEventAggregator>().Object; Mock<IContextualResourceModel> mockResourceModel = Dev2MockFactory.SetupResourceModelMock(); mockResourceModel.Setup(resModel => resModel.WorkflowXaml).Returns(GetAddMissingWorkflowXml()); var dataListViewModel = CreateDataListViewModel(mockResourceModel, eventAggregator); var dataListItems = new OptomizedObservableCollection<IDataListItemModel>(); IDataListItemModel dataListItem = new DataListItemModel("scalar1", enDev2ColumnArgumentDirection.Input, string.Empty); IDataListItemModel secondDataListItem = new DataListItemModel("scalar2", enDev2ColumnArgumentDirection.Input, string.Empty); dataListItems.Add(dataListItem); dataListItems.Add(secondDataListItem); DataListSingleton.SetDataList(dataListViewModel); Mock<IPopupController> mockPopUp = Dev2MockFactory.CreateIPopup(MessageBoxResult.Yes); dataListViewModel.ScalarCollection.Clear(); dataListViewModel.RecsetCollection.Clear(); dataListItems.ToList().ForEach(dataListViewModel.ScalarCollection.Add); WorkflowDesignerViewModel workflowDesigner = CreateWorkflowDesignerViewModel(eventAggregator, mockResourceModel.Object, null, false); workflowDesigner.PopUp = mockPopUp.Object; workflowDesigner.AddMissingWithNoPopUpAndFindUnusedDataListItems(); Assert.AreEqual(2, dataListViewModel.ScalarCollection.Count); Assert.AreEqual(0, dataListViewModel.RecsetCollection.Count); workflowDesigner.Dispose(); }
public void SetModelToDirtyAndExpectThatItemsWillBeAdded() { var eventAggregator = new EventAggregator(); Mock<IContextualResourceModel> mockResourceModel = Dev2MockFactory.SetupResourceModelMock(); mockResourceModel.Setup(resModel => resModel.WorkflowXaml).Returns(WorkflowXAMLForTest()); var dataListViewModel = CreateDataListViewModel(mockResourceModel, eventAggregator); var dataListItems = new OptomizedObservableCollection<IDataListItemModel>(); IDataListItemModel dataListItem = new DataListItemModel("scalar1", enDev2ColumnArgumentDirection.Input, string.Empty); IDataListItemModel secondDataListItem = new DataListItemModel("scalar2", enDev2ColumnArgumentDirection.Input, string.Empty); dataListItems.Add(dataListItem); dataListItems.Add(secondDataListItem); DataListSingleton.SetDataList(dataListViewModel); dataListItems.ToList().ForEach(dataListViewModel.ScalarCollection.Add); dataListViewModel.RecsetCollection.Clear(); WorkflowDesignerViewModel workflowDesigner = CreateWorkflowDesignerViewModel(eventAggregator, mockResourceModel.Object, null, false); workflowDesigner.DispatcherUpdateAction = (a => DataListSingleton.ActiveDataList.UpdateDataListItems(workflowDesigner.ResourceModel, a)); IDataListItemModel dataListItem3 = new DataListItemModel("scalar8", enDev2ColumnArgumentDirection.Input, string.Empty); workflowDesigner.ChangeIsPossible = true; dataListItems.Add(dataListItem3); Thread.Sleep(3000); workflowDesigner.Dispose(); Assert.AreEqual(5, dataListViewModel.ScalarCollection.Count); }
public void DataListViewModel_HasErrors_ItemHasInvalidChar_ErrorNotRemovedFromDuplicateCheck() { //------------Setup for test-------------------------- var dataListViewModel = new DataListViewModel(); IDataListItemModel dataListItemModel = new DataListItemModel("test@"); dataListItemModel.HasError = true; dataListItemModel.ErrorMessage = StringResources.ErrorMessageInvalidChar; dataListViewModel.ScalarCollection.Add(dataListItemModel); //------------Execute Test--------------------------- dataListViewModel.ValidateNames(dataListItemModel); //------------Assert Results------------------------- Assert.IsTrue(dataListViewModel.HasErrors); StringAssert.Contains(dataListViewModel.DataListErrorMessage, dataListItemModel.ErrorMessage); }
public void DataListViewModel_ValidateNames_ItemHasInvalidChar_ErrorNotRemovedFromDuplicateCheck() { //------------Setup for test-------------------------- var dataListViewModel = new DataListViewModel(); IDataListItemModel dataListItemModel = new DataListItemModel("test@"); dataListItemModel.HasError = true; dataListItemModel.ErrorMessage = StringResources.ErrorMessageInvalidChar; //------------Execute Test--------------------------- dataListViewModel.ValidateNames(dataListItemModel); //------------Assert Results------------------------- Assert.AreEqual(StringResources.ErrorMessageInvalidChar, dataListItemModel.ErrorMessage); }
public void SetName_XmlEscapeCharactersInName_Expected_ValidationErrorMessageOnNameSet() { IDataListItemModel dataListItemModel = new DataListItemModel("MyDisplayName"); dataListItemModel.DisplayName = "UnitTestWith<>"; Assert.IsTrue(!string.IsNullOrEmpty(dataListItemModel.ErrorMessage)); }
public void SetName_ValidName_Expected_NoValidationErrorMessageOnNameSet() { IDataListItemModel dataListItemModel = new DataListItemModel("MyDisplayName"); dataListItemModel.DisplayName = "UnitTestDisplayName"; Assert.IsTrue(string.IsNullOrEmpty(dataListItemModel.ErrorMessage)); }
public void SetName_InvalidName_Expected_ValidationErrorMessageOnNameSet() { IDataListItemModel dataListItemModel = new DataListItemModel("MyDisplayName"); dataListItemModel.DisplayName = "UnitTestWith&<>"'"; Assert.IsTrue(!string.IsNullOrEmpty(dataListItemModel.ErrorMessage)); }
public void DataListViewModel_HasErrors_FieldNamesDuplicated_HasErrorsTrue() { //------------Setup for test-------------------------- Setup(); _dataListViewModel.RecsetCollection.Clear(); _dataListViewModel.ScalarCollection.Clear(); IList<IDataListVerifyPart> parts = new List<IDataListVerifyPart>(); var part = new Mock<IDataListVerifyPart>(); part.Setup(c => c.Recordset).Returns("ab"); part.Setup(c => c.DisplayValue).Returns("[[ab()]]"); part.Setup(c => c.Description).Returns(""); part.Setup(c => c.IsScalar).Returns(false); part.Setup(c => c.Field).Returns(""); parts.Add(part.Object); var part2 = new Mock<IDataListVerifyPart>(); part2.Setup(c => c.Recordset).Returns("ab"); part2.Setup(c => c.DisplayValue).Returns("[[ab().c]]"); part2.Setup(c => c.Description).Returns(""); part2.Setup(c => c.IsScalar).Returns(false); part2.Setup(c => c.Field).Returns("c"); parts.Add(part2.Object); _dataListViewModel.AddMissingDataListItems(parts, false); IDataListItemModel item = new DataListItemModel("ab().c"); item.Name = "c"; item.Parent = _dataListViewModel.RecsetCollection[0]; _dataListViewModel.RecsetCollection[0].Children.Insert(1, item); _dataListViewModel.RemoveBlankRows(item); _dataListViewModel.AddRecordsetNamesIfMissing(); //------------Execute Test--------------------------- _dataListViewModel.ValidateNames(item); //------------Assert Results------------------------- Assert.IsTrue(_dataListViewModel.HasErrors); StringAssert.Contains(_dataListViewModel.DataListErrorMessage, _dataListViewModel.RecsetCollection[0].Children[0].ErrorMessage); StringAssert.Contains(_dataListViewModel.DataListErrorMessage, _dataListViewModel.RecsetCollection[0].Children[1].ErrorMessage); }
public void RemoveAllUnusedDataListObjectsWithItemsNotUsedExpectedItemsRemoved() { var eventAggregator = new EventAggregator(); Mock<IContextualResourceModel> mockResourceModel = Dev2MockFactory.SetupResourceModelMock(); mockResourceModel.Setup(resModel => resModel.WorkflowXaml).Returns(WorkflowXAMLForTest()); var dataListViewModel = CreateDataListViewModel(mockResourceModel, eventAggregator); var dataListItems = new OptomizedObservableCollection<IDataListItemModel>(); IDataListItemModel dataListItem = new DataListItemModel("scalar1", enDev2ColumnArgumentDirection.Input, string.Empty); IDataListItemModel secondDataListItem = new DataListItemModel("scalar2", enDev2ColumnArgumentDirection.Input, string.Empty); dataListItems.Add(dataListItem); dataListItems.Add(secondDataListItem); DataListSingleton.SetDataList(dataListViewModel); dataListItems.ToList().ForEach(dataListViewModel.ScalarCollection.Add); dataListViewModel.RecsetCollection.Clear(); WorkflowDesignerViewModel workflowDesigner = CreateWorkflowDesignerViewModel(eventAggregator, mockResourceModel.Object, null, false); workflowDesigner.DispatcherUpdateAction = (a => DataListSingleton.ActiveDataList.UpdateDataListItems(workflowDesigner.ResourceModel, a)); workflowDesigner.AddMissingWithNoPopUpAndFindUnusedDataListItems(); dataListViewModel.RemoveUnusedDataListItems(); workflowDesigner.Dispose(); Assert.AreEqual(0, dataListViewModel.ScalarCollection.Count); }
public void DataListViewModel_RemoveDataListItem_WithScalarItem_ShouldRemoveFromScalarCollection() { //------------Setup for test-------------------------- var dataListViewModel = new DataListViewModel(new Mock<IEventAggregator>().Object); var scalarItem = new DataListItemModel("scalar"); dataListViewModel.ScalarCollection.Add(scalarItem); //----------------------Precondition---------------------------- Assert.AreEqual(1, dataListViewModel.ScalarCollection.Count); //------------Execute Test--------------------------- dataListViewModel.RemoveDataListItem(scalarItem); //------------Assert Results------------------------- Assert.AreEqual(0, dataListViewModel.ScalarCollection.Count); }
public void FindUnusedDataListItemsWithUnusedDataListItemsExpectedItemsToBeSetToNotUsed() { var eventAggregator = new EventAggregator(); Mock<IContextualResourceModel> mockResourceModel = Dev2MockFactory.SetupResourceModelMock(); mockResourceModel.Setup(resModel => resModel.WorkflowXaml).Returns(WorkflowXAMLForTest()); var dataListViewModel = CreateDataListViewModel(mockResourceModel, eventAggregator); var dataListItems = new OptomizedObservableCollection<IDataListItemModel>(); IDataListItemModel dataListItem = new DataListItemModel("scalar1", enDev2ColumnArgumentDirection.Input, string.Empty); IDataListItemModel secondDataListItem = new DataListItemModel("scalar2", enDev2ColumnArgumentDirection.Input, string.Empty); dataListItems.Add(dataListItem); dataListItems.Add(secondDataListItem); DataListSingleton.SetDataList(dataListViewModel); Mock<IPopupController> mockPopUp = Dev2MockFactory.CreateIPopup(MessageBoxResult.Yes); dataListItems.ToList().ForEach(dataListViewModel.ScalarCollection.Add); dataListViewModel.RecsetCollection.Clear(); WorkflowDesignerViewModel workflowDesigner = CreateWorkflowDesignerViewModelWithDesignerAttributesInitialized(mockResourceModel.Object, eventAggregator); workflowDesigner.PopUp = mockPopUp.Object; // workflowDesigner.MediatorRepo = _mockMediatorRepo.Object; Assert.IsTrue(dataListViewModel.ScalarCollection[0].IsUsed); Assert.IsTrue(dataListViewModel.ScalarCollection[1].IsUsed); workflowDesigner.AddMissingWithNoPopUpAndFindUnusedDataListItems(); workflowDesigner.Dispose(); Assert.IsTrue(!dataListViewModel.ScalarCollection[0].IsUsed); }
public void DataListViewModel_MissingDataListParts_ScalarPartInDataList_ShouldNotReturnPartInList() { //------------Setup for test-------------------------- var dataListViewModel = new DataListViewModel(new Mock<IEventAggregator>().Object); const string scalarName = "scalar"; var scalarItem = new DataListItemModel(scalarName); dataListViewModel.ScalarCollection.Add(scalarItem); var parts = new List<IDataListVerifyPart> { CreateScalarPart(scalarName).Object }; //----------------------Precondition---------------------------- Assert.AreEqual(1, dataListViewModel.ScalarCollection.Count); //------------Execute Test--------------------------- List<IDataListVerifyPart> missingDataListParts = dataListViewModel.MissingDataListParts(parts); //------------Assert Results------------------------- Assert.AreEqual(0, missingDataListParts.Count); }
public void GetDecisionElementsWhenItemAlreadyInDataListShouldNotReturnRecsetIfScalarNonExistent() { //Execute Mock<IContextualResourceModel> resourceModel = Dev2MockFactory.ResourceModel; var eventAggregator = new EventAggregator(); var model = CreateWorkflowDesignerViewModel(eventAggregator, resourceModel.Object, null, false); var dataListViewModel = new DataListViewModel(); dataListViewModel.InitializeDataListViewModel(resourceModel.Object); var recsetModel = new DataListItemModel("RecSet"); dataListViewModel.RecsetCollection.Add(recsetModel); dataListViewModel.RecsetCollection[2].Children.Add(new DataListItemModel("aasszzz", parent: recsetModel)); const string expression = "Dev2.Data.Decision.Dev2DataListDecisionHandler.Instance.ExecuteDecisionStack(\"{!TheStack!:[{!Col1!:![[a]]!,!Col2!:!Is Equal!,!Col3!:!0!,!PopulatedColumnCount!:2,!EvaluationFn!:!IsEqual!}],!TotalDecisions!:1,!ModelName!:!Dev2DecisionStack!,!Mode!:!AND!,!TrueArmText!:!True!,!FalseArmText!:!False!,!DisplayText!:!If ]] Is Equal [[scalar]]!}\",AmbientDataList)"; var actual = model.GetDecisionElements(expression, dataListViewModel); model.Dispose(); //Assert Assert.AreEqual(1, actual.Count, "Find missing returned an unexpected number of results when finding variables in a decision"); Assert.AreEqual("{!TheStack!:[{!Col1!:!a!,!Col2!:!Is Equal!,!Col3!:!0!,!PopulatedColumnCount!:2,!EvaluationFn!:!IsEqual!}],!TotalDecisions!:1,!ModelName!:!Dev2DecisionStack!,!Mode!:!AND!,!TrueArmText!:!True!,!FalseArmText!:!False!,!DisplayText!:!If Is Equal scalar!}", actual[0], "Find missing found an invalid variable in a decision"); }
public void DataListViewModel_UpdateDataListItems_NoMissingScalarWorkflowItems_ShouldMarkScalarValuesUsedTrue() { //------------Setup for test-------------------------- IResourceModel resourceModel = new Mock<IResourceModel>().Object; var dataListViewModel = new DataListViewModel(new Mock<IEventAggregator>().Object); dataListViewModel.InitializeDataListViewModel(resourceModel); const string scalarName = "scalar"; var scalarItem = new DataListItemModel(scalarName) { IsUsed = false }; dataListViewModel.ScalarCollection.Add(scalarItem); var parts = new List<IDataListVerifyPart> { CreateScalarPart(scalarName).Object }; //------------Execute Test--------------------------- dataListViewModel.UpdateDataListItems(resourceModel, parts); //------------Assert Results------------------------- Assert.IsTrue(dataListViewModel.ScalarCollection[0].IsUsed); }