public void DataMergeDesignerViewModel_Constructor_ModelItemIsValid_MergeCollectionHasTwoItems()
 {
     var modelItem = ModelItemUtils.CreateModelItem(new DsfDataMergeActivity());
     var viewModel = new DataMergeDesignerViewModel(modelItem);
     dynamic mi = viewModel.ModelItem;
     Assert.AreEqual(2, mi.MergeCollection.Count);
 }
        public void DataMergeDesignerViewModel_Constructor__ModelItemIsValid_ListHasFourItems()
        {
            var items = new List<DataMergeDTO> { new DataMergeDTO("", "None", "", 0, "", "Left") };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
            var expected = new List<string> { "None", "Index", "Chars", "New Line", "Tab" };

            CollectionAssert.AreEqual(expected, viewModel.ItemsList.ToList());
        } //AlignmentTypes
        public void DataMergeDesignerViewModel_Constructor__ModelItemIsValid_AlignmentTypesHasTwoItems()
        {
            var items = new List<DataMergeDTO> { new DataMergeDTO("", "None", "", 0, "", "Left") };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
            var expected = new List<string> { "Left", "Right" };

            CollectionAssert.AreEqual(expected, viewModel.AlignmentTypes.ToList());
        }
        public void DataMergeDesignerViewModel_Constructor_ModelItemIsValid_MergeCollectionHasTwoItems()
        {
            var     modelItem = ModelItemUtils.CreateModelItem(new DsfDataMergeActivity());
            var     viewModel = new DataMergeDesignerViewModel(modelItem);
            dynamic mi        = viewModel.ModelItem;

            Assert.AreEqual(2, mi.MergeCollection.Count);
        }
        public void DataMergeDesignerViewModel_Constructor__ModelItemIsValid_CollectionNameIsSetToMergeCollection()
        {
            var items = new List <DataMergeDTO> {
                new DataMergeDTO()
            };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));

            Assert.AreEqual("MergeCollection", viewModel.CollectionName);
        }
        public void DataMergeDesignerViewModel_Constructor__ModelItemIsValid_AlignmentTypesHasTwoItems()
        {
            var items = new List <DataMergeDTO> {
                new DataMergeDTO("", "None", "", 0, "", "Left")
            };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
            var expected  = new List <string> {
                "Left", "Right"
            };

            CollectionAssert.AreEqual(expected, viewModel.AlignmentTypes.ToList());
        }
        public void DataMergeDesignerViewModel_Constructor__ModelItemIsValid_ListHasFourItems()
        {
            var items = new List <DataMergeDTO> {
                new DataMergeDTO("", "None", "", 0, "", "Left")
            };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
            var expected  = new List <string> {
                "None", "Index", "Chars", "New Line", "Tab"
            };

            CollectionAssert.AreEqual(expected, viewModel.ItemsList.ToList());
        } //AlignmentTypes
 public void DataMergeDesignerViewModel_Constructor_ModelItemIsInitializedWith4Items_MergeCollectionHasFourItems()
 {
     var items = new List<DataMergeDTO>
     {
         new DataMergeDTO("", "None", "", 0, "", "Left"),
         new DataMergeDTO("", "None", "", 0, "", "Left"),
         new DataMergeDTO("", "None", "", 0, "", "Left"),
         new DataMergeDTO("", "None", "", 0, "", "Left")
     };
     var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
     dynamic mi = viewModel.ModelItem;
     Assert.AreEqual(5, mi.MergeCollection.Count);
 }
        public void DataMergeDesignerViewModel_Constructor_ModelItemIsInitializedWith4Items_MergeCollectionHasFourItems()
        {
            var items = new List <DataMergeDTO>
            {
                new DataMergeDTO("", "None", "", 0, "", "Left"),
                new DataMergeDTO("", "None", "", 0, "", "Left"),
                new DataMergeDTO("", "None", "", 0, "", "Left"),
                new DataMergeDTO("", "None", "", 0, "", "Left")
            };
            var     viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
            dynamic mi        = viewModel.ModelItem;

            Assert.AreEqual(5, mi.MergeCollection.Count);
        }
        public void DataMergeDesignerViewModel_New()
        {
            var items = new List <DataMergeDTO>
            {
                new DataMergeDTO("[[recordset().a]]", "Index", "", 1, "", "Left"),
                new DataMergeDTO("[[recordset().b]]", "Index", "", 2, "", "Left"),
            };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
            var itemsList = viewModel.ModelItemCollection;

            foreach (var i in itemsList)
            {
                Assert.AreEqual("True", i.GetProperty("EnablePadding").ToString());
            }
        }
        static void VerifyMergeTypeAgaintsEnabledAt(string mergeType, bool expectedEnableAt)
        {
            var items = new List <DataMergeDTO> {
                new DataMergeDTO("", mergeType, "", 0, "", "Left")
            };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));

            viewModel.MergeTypeUpdatedCommand.Execute(0);
            dynamic mi             = viewModel.ModelItemCollection[0];
            var     at             = mi.At as string;
            var     actualEnableAt = mi.EnableAt as bool?;

            Assert.AreEqual("", at);
            Assert.AreEqual(expectedEnableAt, actualEnableAt);
        }
        public void DataMergeDesignerViewModel_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 items = new List <DataMergeDTO> {
                new DataMergeDTO()
            };
            var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));

            //------------Execute Test---------------------------
            viewModel.UpdateHelpDescriptor("help");
            //------------Assert Results-------------------------
            mockHelpViewModel.Verify(model => model.UpdateHelpText(It.IsAny <string>()), Times.Once());
        }
        public void DataMergeDesignerViewModel_ValidateCollectionItem_ValidatesPropertiesOfDTO()
        {
            //------------Setup for test--------------------------
            var mi = ModelItemUtils.CreateModelItem(new DsfDataMergeActivity());

            mi.SetProperty("DisplayName", "Merge");

            var dto = new DataMergeDTO("a&]]", DataMergeDTO.MergeTypeIndex, "", 0, "ab", "Left");

            // ReSharper disable PossibleNullReferenceException
            var miCollection = mi.Properties["MergeCollection"].Collection;
            var dtoModelItem = miCollection.Add(dto);
            // ReSharper restore PossibleNullReferenceException

            var viewModel = new DataMergeDesignerViewModel(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(4, viewModel.Errors.Count);

            StringAssert.Contains(viewModel.Errors[0].Message, "'Input' - Invalid expression: opening and closing brackets don't match.");
            Verify_IsFocused(dtoModelItem, viewModel.Errors[0].Do, "IsFieldNameFocused");

            StringAssert.Contains(viewModel.Errors[1].Message, "'Using' cannot be empty");
            Verify_IsFocused(dtoModelItem, viewModel.Errors[1].Do, "IsAtFocused");
        }
        public void DataMergeDesignerViewModel_ValidateCollectionItem_ValidatesPropertiesOfDTO()
        {
            //------------Setup for test--------------------------
            var mi = ModelItemUtils.CreateModelItem(new DsfDataMergeActivity());

            mi.SetProperty("DisplayName", "Merge");

            var dto = new DataMergeDTO("a&]]", DataMergeDTO.MergeTypeIndex, "", 0, "ab", "Left");


            var miCollection = mi.Properties["MergeCollection"].Collection;
            var dtoModelItem = miCollection.Add(dto);


            var viewModel = new DataMergeDesignerViewModel(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(4, viewModel.Errors.Count);

            StringAssert.Contains(viewModel.Errors[0].Message, Warewolf.Resource.Errors.ErrorResource.DataMergeInvalidExpressionErrorTest);
            Verify_IsFocused(dtoModelItem, viewModel.Errors[0].Do, "IsFieldNameFocused");

            StringAssert.Contains(viewModel.Errors[1].Message, Warewolf.Resource.Errors.ErrorResource.DataMergeUsingNullErrorTest);
            Verify_IsFocused(dtoModelItem, viewModel.Errors[1].Do, "IsAtFocused");
        }
 public void DataMergeDesignerViewModel_Constructor__ModelItemIsValid_CollectionNameIsSetToMergeCollection()
 {
     var items = new List<DataMergeDTO> { new DataMergeDTO() };
     var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
     Assert.AreEqual("MergeCollection", viewModel.CollectionName);
 }
        public void DataMergeDesignerViewModel_ValidateCollectionItem_ValidatesPropertiesOfDTO()
        {
            //------------Setup for test--------------------------
            var mi = ModelItemUtils.CreateModelItem(new DsfDataMergeActivity());
            mi.SetProperty("DisplayName", "Merge");

            var dto = new DataMergeDTO("a&]]", DataMergeDTO.MergeTypeIndex, "", 0, "ab", "Left");

            // ReSharper disable PossibleNullReferenceException
            var miCollection = mi.Properties["MergeCollection"].Collection;
            var dtoModelItem = miCollection.Add(dto);
            // ReSharper restore PossibleNullReferenceException

            var viewModel = new DataMergeDesignerViewModel(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(4, viewModel.Errors.Count);

            StringAssert.Contains(viewModel.Errors[0].Message, "'Input' - Invalid expression: opening and closing brackets don't match.");
            Verify_IsFocused(dtoModelItem, viewModel.Errors[0].Do, "IsFieldNameFocused");

            StringAssert.Contains(viewModel.Errors[1].Message, "'Using' cannot be empty");
            Verify_IsFocused(dtoModelItem, viewModel.Errors[1].Do, "IsAtFocused");
        }
 static void VerifyMergeTypeAgaintsEnabledAt(string mergeType, bool expectedEnableAt)
 {
     var items = new List<DataMergeDTO> { new DataMergeDTO("", mergeType, "", 0, "", "Left") };
     var viewModel = new DataMergeDesignerViewModel(CreateModelItem(items));
     viewModel.MergeTypeUpdatedCommand.Execute(0);
     dynamic mi = viewModel.ModelItemCollection[0];
     var at = mi.At as string;
     var actualEnableAt = mi.EnableAt as bool?;
     Assert.AreEqual("", at);
     Assert.AreEqual(expectedEnableAt, actualEnableAt);
 }