public void FindRecordsMultipleCriteriaDesignerViewModel_ValidateCollectionItem_ValidatesPropertiesOfTO()
        {
            //------------Setup for test--------------------------
            var mi = ModelItemUtils.CreateModelItem(new DsfFindRecordsMultipleCriteriaActivity());

            mi.SetProperty("DisplayName", "Find");
            mi.SetProperty("FieldsToSearch", "a,b");
            mi.SetProperty("Result", "[[a]]");

            var dto1 = new FindRecordsTO("", "Starts With", 0);
            var dto2 = new FindRecordsTO("", "Ends With", 1);
            var dto3 = new FindRecordsTO("", "Doesn't Start With", 2);
            var dto4 = new FindRecordsTO("", "Doesn't End With", 3);
            var dto5 = new FindRecordsTO("", "Is Between", 4);
            var dto6 = new FindRecordsTO("", "Is Not Between", 5);

            // ReSharper disable PossibleNullReferenceException
            var miCollection  = mi.Properties["ResultsCollection"].Collection;
            var dtoModelItem1 = miCollection.Add(dto1);
            var dtoModelItem2 = miCollection.Add(dto2);
            var dtoModelItem3 = miCollection.Add(dto3);
            var dtoModelItem4 = miCollection.Add(dto4);
            var dtoModelItem5 = miCollection.Add(dto5);
            var dtoModelItem6 = miCollection.Add(dto6);
            // ReSharper restore PossibleNullReferenceException

            var viewModel = new FindRecordsMultipleCriteriaDesignerViewModel(mi);

            SetDataListString(viewModel);
            //------------Execute Test---------------------------
            viewModel.Validate();

            //------------Assert Results-------------------------
            Assert.AreEqual(8, viewModel.Errors.Count);

            StringAssert.Contains(viewModel.Errors[0].Message, "'Match' cannot be empty");
            Verify_IsFocused(dtoModelItem1, viewModel.Errors[0].Do, "IsSearchCriteriaFocused");

            StringAssert.Contains(viewModel.Errors[1].Message, "'Match' cannot be empty");
            Verify_IsFocused(dtoModelItem2, viewModel.Errors[1].Do, "IsSearchCriteriaFocused");

            StringAssert.Contains(viewModel.Errors[2].Message, "'Match' cannot be empty");
            Verify_IsFocused(dtoModelItem3, viewModel.Errors[2].Do, "IsSearchCriteriaFocused");

            StringAssert.Contains(viewModel.Errors[3].Message, "'Match' cannot be empty");
            Verify_IsFocused(dtoModelItem4, viewModel.Errors[3].Do, "IsSearchCriteriaFocused");

            StringAssert.Contains(viewModel.Errors[4].Message, "'From' cannot be empty");
            Verify_IsFocused(dtoModelItem5, viewModel.Errors[4].Do, "IsFromFocused");

            StringAssert.Contains(viewModel.Errors[5].Message, "'To' cannot be empty");
            Verify_IsFocused(dtoModelItem5, viewModel.Errors[5].Do, "IsToFocused");

            StringAssert.Contains(viewModel.Errors[6].Message, "'From' cannot be empty");
            Verify_IsFocused(dtoModelItem6, viewModel.Errors[6].Do, "IsFromFocused");

            StringAssert.Contains(viewModel.Errors[7].Message, "'To' cannot be empty");
            Verify_IsFocused(dtoModelItem6, viewModel.Errors[7].Do, "IsToFocused");
        }
Esempio n. 2
0
        public void FindRecordsTO_GetRuleSet_OnToSearchTypeAsIsNotBetween_ReturnTwoRules()
        {
            //------------Setup for test--------------------------
            var findRecordsTO = new FindRecordsTO {
                SearchType = "Is Not Between", SearchCriteria = string.Empty
            };

            VerifyCorrectRulesForEachField(findRecordsTO, "To");
        }
Esempio n. 3
0
        public void FindRecordsTO_GetRuleSet_OnSearchCriteriaSearchTypeAsDoesntStartWith_ReturnTwoRules()
        {
            //------------Setup for test--------------------------
            var findRecordsTO = new FindRecordsTO {
                SearchType = "Doesn't Start With", SearchCriteria = string.Empty
            };

            VerifyCorrectRulesForEachField(findRecordsTO, "SearchCriteria");
        }
Esempio n. 4
0
        static void VerifyCorrectRulesForEachField(FindRecordsTO findRecordsTO, string fieldName)
        {
            //------------Execute Test---------------------------
            var rulesSet = findRecordsTO.GetRuleSet(fieldName, "");

            //------------Assert Results-------------------------
            Assert.IsNotNull(rulesSet);
            Assert.IsInstanceOfType(rulesSet.Rules[0], typeof(IsStringEmptyRule));
            Assert.IsInstanceOfType(rulesSet.Rules[1], typeof(IsValidExpressionRule));
        }
Esempio n. 5
0
        public void FindRecordsTO_CanRemove_SearchTypeEmptyAndSearchTypeWithData_ReturnFalse()
        {
            //------------Setup for test--------------------------
            var findRecordsTO = new FindRecordsTO {
                SearchType = string.Empty, SearchCriteria = "Data"
            };

            //------------Execute Test---------------------------
            Assert.IsFalse(findRecordsTO.CanRemove());
            //------------Assert Results-------------------------
        }
Esempio n. 6
0
        public void FindRecordsTO_CanAdd_SearchTypeWithData_ReturnTrue()
        {
            //------------Setup for test--------------------------
            var findRecordsTO = new FindRecordsTO {
                SearchType = "Contains"
            };

            //------------Execute Test---------------------------
            Assert.IsTrue(findRecordsTO.CanAdd());
            //------------Assert Results-------------------------
        }
Esempio n. 7
0
        public void FindRecordsTO_CanAdd_SearchTypeEmpty_ReturnFalse()
        {
            //------------Setup for test--------------------------
            var findRecordsTO = new FindRecordsTO {
                SearchType = string.Empty
            };

            //------------Execute Test---------------------------
            Assert.IsFalse(findRecordsTO.CanAdd());
            //------------Assert Results-------------------------
        }
Esempio n. 8
0
        public void FindRecordsTO_IsSearchCriteriaEnabled_SetValue_FiresNotifyPropertyChanged()
        {
            //------------Setup for test--------------------------
            var        findRecordsTO           = new FindRecordsTO();
            const bool isSearchCriteriaEnabled = true;
            //------------Execute Test---------------------------
            var notifyPropertyChanged = TestUtils.PropertyChangedTester(findRecordsTO, () => findRecordsTO.IsSearchCriteriaEnabled, () => findRecordsTO.IsSearchCriteriaEnabled = isSearchCriteriaEnabled);

            //------------Assert Results-------------------------
            Assert.AreEqual(isSearchCriteriaEnabled, findRecordsTO.IsSearchCriteriaEnabled);
            Assert.IsTrue(notifyPropertyChanged);
        }
Esempio n. 9
0
        public void FindRecordsTO_IndexNum_SetValue_FiresNotifyPropertyChanged()
        {
            //------------Setup for test--------------------------
            var       findRecordsTO = new FindRecordsTO();
            const int indexNum      = 5;
            //------------Execute Test---------------------------
            var notifyPropertyChanged = TestUtils.PropertyChangedTester(findRecordsTO, () => findRecordsTO.IndexNumber, () => findRecordsTO.IndexNumber = indexNum);

            //------------Assert Results-------------------------
            Assert.AreEqual(indexNum, findRecordsTO.IndexNumber);
            Assert.IsTrue(notifyPropertyChanged);
        }
Esempio n. 10
0
        public void FindRecordsTO_SearchCriteria_SetValue_FiresNotifyPropertyChanged()
        {
            //------------Setup for test--------------------------
            var          findRecordsTO  = new FindRecordsTO();
            const string searchCriteria = "MyValue";
            //------------Execute Test---------------------------

            var notifyPropertyChanged = TestUtils.PropertyChangedTester(findRecordsTO, () => findRecordsTO.SearchCriteria, () => findRecordsTO.SearchCriteria = searchCriteria);

            //------------Assert Results-------------------------
            Assert.AreEqual(searchCriteria, findRecordsTO.SearchCriteria);
            Assert.IsTrue(notifyPropertyChanged);
        }
Esempio n. 11
0
        public void FindRecordsTO_SearchType_SetValue_FiresNotifyPropertyChanged()
        {
            //------------Setup for test--------------------------
            var          findRecordsTO = new FindRecordsTO();
            const string searchType    = "MyValue";
            //------------Execute Test---------------------------
            // ReSharper disable ImplicitlyCapturedClosure
            var notifyPropertyChanged = TestUtils.PropertyChangedTester(findRecordsTO, () => findRecordsTO.SearchType, () => findRecordsTO.SearchType = searchType);

            // ReSharper restore ImplicitlyCapturedClosure
            //------------Assert Results-------------------------
            Assert.AreEqual(searchType, findRecordsTO.SearchType);
            Assert.IsTrue(notifyPropertyChanged);
        }
Esempio n. 12
0
        public void FindRecordsTO_Constructor_Default_SetsProperties()
        {
            //------------Setup for test--------------------------
            //------------Execute Test---------------------------
            var findRecordsTO = new FindRecordsTO();

            //------------Assert Results-------------------------
            Assert.IsNotNull(findRecordsTO);
            Assert.AreEqual("Match On", findRecordsTO.SearchCriteria);
            Assert.AreEqual("Equal", findRecordsTO.SearchType);
            Assert.AreEqual(0, findRecordsTO.IndexNumber);
            Assert.IsFalse(findRecordsTO.Inserted);
            Assert.IsFalse(findRecordsTO.IsSearchCriteriaEnabled);
        }
        public void FindRecordsMultipleCriteriaDesignerViewModel_ValidateCollectionItem_ValidatesPropertiesOfTO()
        {
            //------------Setup for test--------------------------
            var mi = ModelItemUtils.CreateModelItem(new DsfFindRecordsMultipleCriteriaActivity());

            mi.SetProperty("DisplayName", "Find");
            mi.SetProperty("FieldsToSearch", "a,b");
            mi.SetProperty("Result", "[[a]]");

            var dto1 = new FindRecordsTO("", "Starts With", 0);
            var dto2 = new FindRecordsTO("", "Ends With", 1);
            var dto3 = new FindRecordsTO("", "Doesn't Start With", 2);
            var dto4 = new FindRecordsTO("", "Doesn't End With", 3);
            var dto5 = new FindRecordsTO("", "Is Between", 4);
            var dto6 = new FindRecordsTO("", "Is Not Between", 5);


            var miCollection  = mi.Properties["ResultsCollection"].Collection;
            var dtoModelItem1 = miCollection.Add(dto1);
            var dtoModelItem2 = miCollection.Add(dto2);
            var dtoModelItem3 = miCollection.Add(dto3);
            var dtoModelItem4 = miCollection.Add(dto4);
            var dtoModelItem5 = miCollection.Add(dto5);
            var dtoModelItem6 = miCollection.Add(dto6);


            var viewModel = new FindRecordsMultipleCriteriaDesignerViewModel(mi);

            SetDataListString(viewModel);
            //------------Execute Test---------------------------
            viewModel.Validate();

            //------------Assert Results-------------------------
            Assert.AreEqual(5, viewModel.Errors.Count);


            StringAssert.Contains(viewModel.Errors[0].Message, "'In Field(s)' Cannot have any scalars in this field");

            StringAssert.Contains(viewModel.Errors[1].Message, Warewolf.Resource.Errors.ErrorResource.FindRecordsFromNotNullErrorTest);
            Verify_IsFocused(dtoModelItem5, viewModel.Errors[1].Do, "IsFromFocused");

            StringAssert.Contains(viewModel.Errors[2].Message, Warewolf.Resource.Errors.ErrorResource.FindRecordsToNotNullErrorTest);
            Verify_IsFocused(dtoModelItem5, viewModel.Errors[2].Do, "IsToFocused");

            StringAssert.Contains(viewModel.Errors[3].Message, Warewolf.Resource.Errors.ErrorResource.FindRecordsFromNotNullErrorTest);
            Verify_IsFocused(dtoModelItem6, viewModel.Errors[3].Do, "IsFromFocused");

            StringAssert.Contains(viewModel.Errors[4].Message, Warewolf.Resource.Errors.ErrorResource.FindRecordsToNotNullErrorTest);
            Verify_IsFocused(dtoModelItem6, viewModel.Errors[4].Do, "IsToFocused");
        }
Esempio n. 14
0
        public void FindRecordsTO_ParameterConstructor_SetsProperties()
        {
            //------------Setup for test--------------------------
            const string searchCriteria = "Bob";
            const string searchType     = ">";
            const int    indexNum       = 3;
            //------------Execute Test---------------------------
            var findRecordsTO = new FindRecordsTO(searchCriteria, searchType, indexNum);

            //------------Assert Results-------------------------
            Assert.IsNotNull(findRecordsTO);
            Assert.AreEqual(searchCriteria, findRecordsTO.SearchCriteria);
            Assert.AreEqual(searchType, findRecordsTO.SearchType);
            Assert.AreEqual(indexNum, findRecordsTO.IndexNumber);
            Assert.IsFalse(findRecordsTO.Inserted);
            Assert.IsFalse(findRecordsTO.IsSearchCriteriaEnabled);
        }
        void Verify_OnSearchTypeChanged_IsSearchCriteriaEnabled(string searchType, bool isSearchCriteriaEnabled, bool isSearchCriteriaBlank)
        {
            //------------Setup for test--------------------------
            var findRecordsTO = new FindRecordsTO("xxxx", searchType, 1);

            var items = new List <FindRecordsTO>
            {
                findRecordsTO
            };

            var viewModel = new FindRecordsMultipleCriteriaDesignerViewModel(CreateModelItem(items));

            //------------Precondition---------------------------
            Assert.IsFalse(findRecordsTO.IsSearchCriteriaEnabled);

            //------------Execute Test---------------------------
            viewModel.SearchTypeUpdatedCommand.Execute(0);

            //------------Assert Results-------------------------
            Assert.AreEqual(isSearchCriteriaEnabled, findRecordsTO.IsSearchCriteriaEnabled);
            Assert.AreEqual(isSearchCriteriaBlank, string.IsNullOrEmpty(findRecordsTO.SearchCriteria));
        }