public void ConditionalWithConstantRuleUsingFactory(string valueToCheck, string expectedOutput) { var trueRule = ConstantRulesFactory.CreateConstantRule <string, string>("element is present in the collection"); var falseRule = ConstantRulesFactory.CreateConstantRule <string, string>("element is not present in the collection"); var searchList = new List <string> { "one", "two", "three", "four", "five", "six" }; var containsRule = ContainsValueRuleFactory.CreateContainsValueRule(searchList, "System.StringComparer", "OrdinalIgnoreCase"); var containsTextRule = ConditionalRulesFactory.CreateConditionalFuncRule <string, string>(containsRule, trueRule, falseRule); var compileResult = containsTextRule.Compile(); compileResult.Should().BeTrue(); _testOutputHelper.WriteLine($"{nameof(containsTextRule)}:{Environment.NewLine}" + $"{containsTextRule.ExpressionDebugView()}"); var ruleResult = containsTextRule.Execute(valueToCheck); _testOutputHelper.WriteLine($"expected: {expectedOutput} - actual: {ruleResult}"); ruleResult.Should().BeEquivalentTo(expectedOutput); }
public void CreateComparerOnTheFlyUsingReflectionUsingFactory() { var equalityComparerPropertyName = "OrdinalIgnoreCase"; var equalityComparerClassName = "System.StringComparer"; var collectionToSearch = new List <string> { "one", "two", "three", "four", "five", "six" }; var containsRule = ContainsValueRuleFactory.CreateContainsValueRule <string>(collectionToSearch, equalityComparerClassName, equalityComparerPropertyName); var compileResult = containsRule.Compile(); compileResult.Should().BeTrue(); _testOutputHelper.WriteLine($"{nameof(containsRule)}:{Environment.NewLine}" + $"{containsRule.ExpressionDebugView()}"); var a1 = containsRule.ContainsValue("One"); a1.Should().BeTrue(); var a2 = containsRule.ContainsValue("tWo"); a2.Should().BeTrue(); var a7 = containsRule.ContainsValue("seven"); a7.Should().BeFalse(); }
public void ContainsValueTestForIntCollectionUsingFactory(int valueToSearch, bool expectedResult) { var containsRule = ContainsValueRuleFactory.CreateContainsValueRule(new List <int> { 1, 2, 3, 4, 5, 6 }, null, null); var compileResult = containsRule.Compile(); compileResult.Should().BeTrue(); _testOutputHelper.WriteLine($"{nameof(containsRule)}:{Environment.NewLine}" + $"{containsRule.ExpressionDebugView()}"); var containsValue = containsRule.ContainsValue(valueToSearch); _testOutputHelper.WriteLine($"expected: {expectedResult} - actual: {containsValue}"); containsValue.Should().Be(expectedResult); }
public void ContainsValueTestCaseSensitiveUsingFactory(string valueToSearch, bool expectedResult) { IList <string> collectionToSearch = new List <string> { "one", "two", "three", "four", "five", "six" }; var containsRule = ContainsValueRuleFactory.CreateContainsValueRule(collectionToSearch, null, null); var compileResult = containsRule.Compile(); compileResult.Should().BeTrue(); _testOutputHelper.WriteLine($"{nameof(containsRule)}:{Environment.NewLine}" + $"{containsRule.ExpressionDebugView()}"); var containsValue = containsRule.ContainsValue(valueToSearch); _testOutputHelper.WriteLine($"expected: {expectedResult} - actual: {containsValue}"); containsValue.Should().Be(expectedResult); }
public void IfValueContainsReturnDiffValue2UsingFactory(string searchValue, string expectedValue) { var collectionToSearch = new List <string> { "one", "two", "three", "four", "five", "six" }; var containsValueRule = ContainsValueRuleFactory.CreateContainsValueRule(collectionToSearch, "System.StringComparer", "OrdinalIgnoreCase"); var trueRule = ConstantRulesFactory.CreateConstantRule <string, string>("six-six-six"); var falseRule = SelfReturnRuleFactory.CreateSelfReturnRule <string>(); var valueReplacementIfBad = ConditionalRulesFactory.CreateConditionalFuncRule <string, string>(containsValueRule, trueRule, falseRule); var compileResult = valueReplacementIfBad.Compile(); compileResult.Should().BeTrue(); _testOutputHelper.WriteLine($"{nameof(valueReplacementIfBad)}:{Environment.NewLine}" + $"{valueReplacementIfBad.ExpressionDebugView()}"); var ruleResult = valueReplacementIfBad.Execute(searchValue); _testOutputHelper.WriteLine($"expected: {expectedValue} - actual: {ruleResult}"); ruleResult.Should().Be(expectedValue); }