public void DataSplitDesignerViewModel_ValidateThis_SourceStringIsEmptyOrWhiteSpace_DoesHaveErrors() { //------------Setup for test-------------------------- var items = new List <DataSplitDTO> { new DataSplitDTO("", DataSplitDTO.SplitTypeChars, "", 0) }; var mi = CreateModelItem(items); mi.SetProperty("SourceString", " "); var viewModel = new DataSplitDesignerViewModel(mi); viewModel.GetDatalistString = () => { const string trueString = "True"; const string noneString = "None"; var datalist = string.Format("<DataList><var Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><a Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><b Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><h Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><r Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><rec Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" ><set Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /></rec></DataList>", trueString, noneString); return(datalist); }; //------------Execute Test--------------------------- viewModel.Validate(); //------------Assert Results------------------------- Assert.AreEqual(1, viewModel.Errors.Count); StringAssert.Contains(viewModel.Errors[0].Message, Warewolf.Resource.Errors.ErrorResource.DataSplitStringToSplitErrorTest); }
public void DataSplitDesignerViewModel_Constructor_ModelItemIsValid_ResultsCollectionHasTwoItems() { var modelItem = ModelItemUtils.CreateModelItem(new DsfDataSplitActivity()); var viewModel = new DataSplitDesignerViewModel(modelItem); dynamic mi = viewModel.ModelItem; Assert.AreEqual(2, mi.ResultsCollection.Count); }
public void DataSplitDesignerViewModel_ValidateThis_SourceStringIsNotEmpty_DoesNotHaveErrors() { //------------Setup for test-------------------------- var items = new List <DataSplitDTO> { new DataSplitDTO("", DataSplitDTO.SplitTypeChars, "", 0) }; var mi = CreateModelItem(items); mi.SetProperty("SourceString", "a,b,c"); var viewModel = new DataSplitDesignerViewModel(mi); viewModel.GetDatalistString = () => { const string trueString = "True"; const string noneString = "None"; var datalist = string.Format("<DataList><var Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><a Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><b Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><h Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><r Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><rec Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" ><set Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /></rec></DataList>", trueString, noneString); return(datalist); }; //------------Execute Test--------------------------- viewModel.Validate(); //------------Assert Results------------------------- Assert.IsNull(viewModel.Errors); }
public void DataSplitDesignerViewModel_Constructor__ModelItemIsValid_CollectionNameIsSetToResultsCollection() { var items = new List <DataSplitDTO> { new DataSplitDTO() }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); Assert.AreEqual("ResultsCollection", viewModel.CollectionName); }
public void DataSplitDesignerViewModel_Constructor__ModelItemIsValid_ListHasFourItems() { var items = new List <DataSplitDTO> { new DataSplitDTO() }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); Assert.AreEqual(6, viewModel.ItemsList.Count); }
public void DataSplitDesignerViewModel_Constructor_ModelItemIsInitializedWith4Items_ResultsCollectionHasFourItems() { var items = new List<DataSplitDTO> { new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0), new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0), new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0), new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0) }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); dynamic mi = viewModel.ModelItem; Assert.AreEqual(5, mi.ResultsCollection.Count); }
public void DataSplitDesignerViewModel_Constructor_ModelItemIsInitializedWith4Items_ResultsCollectionHasFourItems() { var items = new List <DataSplitDTO> { new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0), new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0), new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0), new DataSplitDTO("", DataSplitDTO.SplitTypeNone, "", 0) }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); dynamic mi = viewModel.ModelItem; Assert.AreEqual(5, mi.ResultsCollection.Count); }
static void VerifySplitTypeAgainstEnabledAt(string splitType, bool expectedEnableAt) { var items = new List <DataSplitDTO> { new DataSplitDTO("", splitType, ",", 0) }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); viewModel.SplitTypeUpdatedCommand.Execute(0); dynamic mi = viewModel.ModelItemCollection[0]; var at = mi.At as string; var actualEnableAt = mi.EnableAt as bool?; Assert.AreEqual(expectedEnableAt ? "," : "", at); Assert.AreEqual(expectedEnableAt, actualEnableAt); }
public void DataSplitDesignerViewModel_UpdateHelp_ShouldCallToHelpViewMode() { //------------Setup for test-------------------------- var mockMainViewModel = new Mock <IShellViewModel>(); var mockHelpViewModel = new Mock <IHelpWindowViewModel>(); mockHelpViewModel.Setup(model => model.UpdateHelpText(It.IsAny <string>())).Verifiable(); mockMainViewModel.Setup(model => model.HelpViewModel).Returns(mockHelpViewModel.Object); CustomContainer.Register(mockMainViewModel.Object); var modelItem = ModelItemUtils.CreateModelItem(new DsfDataSplitActivity()); var viewModel = new DataSplitDesignerViewModel(modelItem); //------------Execute Test--------------------------- viewModel.UpdateHelpDescriptor("help"); //------------Assert Results------------------------- mockHelpViewModel.Verify(model => model.UpdateHelpText(It.IsAny <string>()), Times.Once()); }
static void VerifySplitTypeAgainstIsEscapeCharEnabled(string splitType, bool expectedIsEscapeCharEnabled) { var items = new List <DataSplitDTO> { new DataSplitDTO("", splitType, "", 0) { EscapeChar = "'" } }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); viewModel.SplitTypeUpdatedCommand.Execute(0); dynamic mi = viewModel.ModelItemCollection[0]; var escapeChar = mi.EscapeChar as string; var actualIsEscapeCharEnabled = mi.IsEscapeCharEnabled as bool?; Assert.AreEqual(expectedIsEscapeCharEnabled ? "'" : "", escapeChar); Assert.AreEqual(expectedIsEscapeCharEnabled, actualIsEscapeCharEnabled); }
static DataSplitDesignerViewModel CreateViewModel() { var mi = ModelItemUtils.CreateModelItem(new DsfDataSplitActivity()); mi.SetProperty("DisplayName", "Split"); mi.SetProperty("SourceString", "a,b"); var dto = new DataSplitDTO("a]]", DataSplitDTO.SplitTypeIndex, "a", 0); // ReSharper disable PossibleNullReferenceException var miCollection = mi.Properties["ResultsCollection"].Collection; miCollection.Add(dto); // ReSharper restore PossibleNullReferenceException var viewModel = new DataSplitDesignerViewModel(mi); return(viewModel); }
public void DataSplitDesignerViewModel_ValidateCollectionItem_ValidatesPropertiesOfDTO() { //------------Setup for test-------------------------- var mi = ModelItemUtils.CreateModelItem(new DsfDataSplitActivity()); mi.SetProperty("DisplayName", "Split"); mi.SetProperty("SourceString", "a,b"); var dto = new DataSplitDTO("a]]", DataSplitDTO.SplitTypeIndex, "a", 0); // ReSharper disable PossibleNullReferenceException var miCollection = mi.Properties["ResultsCollection"].Collection; var dtoModelItem = miCollection.Add(dto); // ReSharper restore PossibleNullReferenceException var viewModel = new DataSplitDesignerViewModel(mi); viewModel.GetDatalistString = () => { const string trueString = "True"; const string noneString = "None"; var datalist = string.Format("<DataList><var Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><a Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><b Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><h Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><r Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><rec Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" ><set Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /></rec></DataList>", trueString, noneString); return(datalist); }; //------------Execute Test--------------------------- viewModel.Validate(); //------------Assert Results------------------------- Assert.AreEqual(2, viewModel.Errors.Count); StringAssert.Contains(viewModel.Errors[0].Message, Warewolf.Resource.Errors.ErrorResource.DataSplitInvalidExpressionErrorTest); Verify_IsFocused(dtoModelItem, viewModel.Errors[0].Do, "IsOutputVariableFocused"); StringAssert.Contains(viewModel.Errors[1].Message, Warewolf.Resource.Errors.ErrorResource.DataSplitUsingNullErrorTest); Verify_IsFocused(dtoModelItem, viewModel.Errors[1].Do, "IsAtFocused"); }
static void VerifySplitTypeAgainstEnabledAt(string splitType, bool expectedEnableAt) { var items = new List<DataSplitDTO> { new DataSplitDTO("", splitType, ",", 0) }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); viewModel.SplitTypeUpdatedCommand.Execute(0); dynamic mi = viewModel.ModelItemCollection[0]; var at = mi.At as string; var actualEnableAt = mi.EnableAt as bool?; Assert.AreEqual(expectedEnableAt ? "," : "", at); Assert.AreEqual(expectedEnableAt, actualEnableAt); }
public void DataSplitDesignerViewModel_Constructor__ModelItemIsValid_CollectionNameIsSetToResultsCollection() { var items = new List<DataSplitDTO> { new DataSplitDTO() }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); Assert.AreEqual("ResultsCollection", viewModel.CollectionName); }
public void DataSplitDesignerViewModel_Constructor__ModelItemIsValid_ListHasFourItems() { var items = new List<DataSplitDTO> { new DataSplitDTO() }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); Assert.AreEqual(6, viewModel.ItemsList.Count); }
static DataSplitDesignerViewModel CreateViewModel() { var mi = ModelItemUtils.CreateModelItem(new DsfDataSplitActivity()); mi.SetProperty("DisplayName", "Split"); mi.SetProperty("SourceString", "a,b"); var dto = new DataSplitDTO("a]]", DataSplitDTO.SplitTypeIndex, "a", 0); // ReSharper disable PossibleNullReferenceException var miCollection = mi.Properties["ResultsCollection"].Collection; miCollection.Add(dto); // ReSharper restore PossibleNullReferenceException var viewModel = new DataSplitDesignerViewModel(mi); return viewModel; }
public void DataSplitDesignerViewModel_ValidateCollectionItem_ValidatesPropertiesOfDTO() { //------------Setup for test-------------------------- var mi = ModelItemUtils.CreateModelItem(new DsfDataSplitActivity()); mi.SetProperty("DisplayName", "Split"); mi.SetProperty("SourceString", "a,b"); var dto = new DataSplitDTO("a]]", DataSplitDTO.SplitTypeIndex, "a", 0); // ReSharper disable PossibleNullReferenceException var miCollection = mi.Properties["ResultsCollection"].Collection; var dtoModelItem = miCollection.Add(dto); // ReSharper restore PossibleNullReferenceException var viewModel = new DataSplitDesignerViewModel(mi); viewModel.GetDatalistString = () => { const string trueString = "True"; const string noneString = "None"; var datalist = string.Format("<DataList><var Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><a Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><b Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><h Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><r Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><rec Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" ><set Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /></rec></DataList>", trueString, noneString); return datalist; }; //------------Execute Test--------------------------- viewModel.Validate(); //------------Assert Results------------------------- Assert.AreEqual(2, viewModel.Errors.Count); StringAssert.Contains(viewModel.Errors[0].Message, "'Results' - Invalid expression: opening and closing brackets don't match"); Verify_IsFocused(dtoModelItem, viewModel.Errors[0].Do, "IsOutputVariableFocused"); StringAssert.Contains(viewModel.Errors[1].Message, "'Using' must be a real number"); Verify_IsFocused(dtoModelItem, viewModel.Errors[1].Do, "IsAtFocused"); }
public void DataSplitDesignerViewModel_ValidateThis_SourceStringIsEmptyOrWhiteSpace_DoesHaveErrors() { //------------Setup for test-------------------------- var items = new List<DataSplitDTO> { new DataSplitDTO("", DataSplitDTO.SplitTypeChars, "", 0) }; var mi = CreateModelItem(items); mi.SetProperty("SourceString", " "); var viewModel = new DataSplitDesignerViewModel(mi); viewModel.GetDatalistString = () => { const string trueString = "True"; const string noneString = "None"; var datalist = string.Format("<DataList><var Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><a Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><b Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><h Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><r Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><rec Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" ><set Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /></rec></DataList>", trueString, noneString); return datalist; }; //------------Execute Test--------------------------- viewModel.Validate(); //------------Assert Results------------------------- Assert.AreEqual(1, viewModel.Errors.Count); StringAssert.Contains(viewModel.Errors[0].Message, "'String to Split' cannot be empty or only white space"); }
public void DataSplitDesignerViewModel_ValidateThis_SourceStringIsNotEmpty_DoesNotHaveErrors() { //------------Setup for test-------------------------- var items = new List<DataSplitDTO> { new DataSplitDTO("", DataSplitDTO.SplitTypeChars, "", 0) }; var mi = CreateModelItem(items); mi.SetProperty("SourceString", "a,b,c"); var viewModel = new DataSplitDesignerViewModel(mi); viewModel.GetDatalistString = () => { const string trueString = "True"; const string noneString = "None"; var datalist = string.Format("<DataList><var Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><a Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><b Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><h Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><r Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /><rec Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" ><set Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"{1}\" /></rec></DataList>", trueString, noneString); return datalist; }; //------------Execute Test--------------------------- viewModel.Validate(); //------------Assert Results------------------------- Assert.IsNull(viewModel.Errors); }
static void VerifySplitTypeAgainstIsEscapeCharEnabled(string splitType, bool expectedIsEscapeCharEnabled) { var items = new List<DataSplitDTO> { new DataSplitDTO("", splitType, "", 0) { EscapeChar = "'" } }; var viewModel = new DataSplitDesignerViewModel(CreateModelItem(items)); viewModel.SplitTypeUpdatedCommand.Execute(0); dynamic mi = viewModel.ModelItemCollection[0]; var escapeChar = mi.EscapeChar as string; var actualIsEscapeCharEnabled = mi.IsEscapeCharEnabled as bool?; Assert.AreEqual(expectedIsEscapeCharEnabled ? "'" : "", escapeChar); Assert.AreEqual(expectedIsEscapeCharEnabled, actualIsEscapeCharEnabled); }