public void TestControlName() { string json = AssemblyResourceReader.ReadAsString("Test_Data.ValidateRule1.json"); ValidateTruthCondition condition = JsonConvert.DeserializeObject<ValidateTruthCondition>(json); ControlList controlList = new ControlList(); RepeaterControl repeater = new RepeaterControl { Id = 3, Name = "Repeater" }; controlList.Add(repeater); repeater.Controls.Add(new TextControl { Id = 1, Name = "Field1", ParentId = 3 }); repeater.Controls.Add(new TextControl { Id = 2, Name = "Field2", ParentId = 3 }); ApplicationData appData = new ApplicationData(); Dictionary<string, object>[] repeaterData = new Dictionary<string, object>[2]; appData.Add("Repeater", repeaterData); repeaterData[0] = new Dictionary<string, object> { { "Field1", "Is Valid" }, { "Field2", "When Combined With This" } }; repeaterData[1] = new Dictionary<string, object> { { "Field1", "Not Valid" }, { "Field2", "When Combined With This" } }; TruthConditionEvaluatorFactory evaluatorFactory = new TruthConditionEvaluatorFactory(); ITruthConditionValidator validator = new ITruthConditionValidator(condition, controlList, evaluatorFactory); ValidationResults results = validator.Validate(appData); Assert.AreEqual("Repeater[1].Field1", results.ToArray()[0].Key); }
public void TestInitialize() { this.EvaluatorRegister = new TruthConditionEvaluatorFactory(); this.ControlList = new ControlList(); TextControl firstNameControl = new TextControl { Id = 101, Name = "First_name", Label = "First Name" }; ControlList.Add(firstNameControl); TextControl ageControl = new TextControl { Id = 102, Name = "Age", Label = "Age" }; ControlList.Add(ageControl); }
public void TestEmptyRepeaterBusinessRule() { string json = AssemblyResourceReader.ReadAsString("Test_Data.ValidateRule1.json"); ValidateTruthCondition condition = JsonConvert.DeserializeObject<ValidateTruthCondition>(json); ControlList controlList = new ControlList(); RepeaterControl repeater = new RepeaterControl { Id = 3, Name = "Repeater" }; controlList.Add(repeater); repeater.Controls.Add(new TextControl { Id = 1, Name = "Field1", ParentId = 3 }); repeater.Controls.Add(new TextControl { Id = 2, Name = "Field2", ParentId = 3 }); ApplicationData appData = new ApplicationData(); TruthConditionEvaluatorFactory evaluatorFactory = new TruthConditionEvaluatorFactory(); ITruthConditionValidator validator = new ITruthConditionValidator(condition, controlList, evaluatorFactory); ValidationResults results = validator.Validate(appData); Assert.AreEqual(true, results.IsValid); }
public void TestFailBusinessRule() { string json = AssemblyResourceReader.ReadAsString("Test_Data.ValidateRule1.json"); ValidateTruthCondition condition = JsonConvert.DeserializeObject<ValidateTruthCondition>(json); ControlList controlList = new ControlList { new TextControl { Id = 1, Name = "Field1" }, new TextControl { Id = 2, Name = "Field2" } }; ApplicationData appData = new ApplicationData { { "Field1", "Not Valid" }, { "Field2", "When Combined With This" } }; TruthConditionEvaluatorFactory evaluatorFactory = new TruthConditionEvaluatorFactory(); ITruthConditionValidator validator = new ITruthConditionValidator(condition, controlList, evaluatorFactory); ValidationResults results = validator.Validate(appData); Assert.AreEqual(false, results.IsValid); }
public void TestNestedRepeaterPassValueBusinessRule() { string json = AssemblyResourceReader.ReadAsString("Test_Data.ValidateRule1.json"); ValidateTruthCondition condition = JsonConvert.DeserializeObject<ValidateTruthCondition>(json); ControlList controlList = new ControlList(); RepeaterControl repeater = new RepeaterControl { Id = 3, Name = "Repeater" }; controlList.Add(repeater); RepeaterControl nestedRepeater = new RepeaterControl { Id = 4, Name = "NestedRepeater", ParentId = 3 }; repeater.Controls.Add(nestedRepeater); nestedRepeater.Controls.Add(new TextControl { Id = 1, Name = "Field1", ParentId = 4 }); nestedRepeater.Controls.Add(new TextControl { Id = 2, Name = "Field2", ParentId = 4 }); ApplicationData appData = new ApplicationData(); var validExample = new Dictionary<string, object> { { "Field1", "Is Valid" }, { "Field2", "When Combined With This" } }; var anotherValidExample = new Dictionary<string, object> { { "Field1", "And So Is This" }, { "Field2", "When Combined With This" } }; Dictionary<string, object>[] repeaterData = new Dictionary<string, object>[2]; appData.Add("Repeater", repeaterData); repeaterData[0] = new Dictionary<string, object>() { { "NestedRepeater", new[] { validExample, anotherValidExample } } }; repeaterData[1] = new Dictionary<string, object>() { { "NestedRepeater", new[] { anotherValidExample, validExample } } }; TruthConditionEvaluatorFactory evaluatorFactory = new TruthConditionEvaluatorFactory(); ITruthConditionValidator validator = new ITruthConditionValidator(condition, controlList, evaluatorFactory); ValidationResults results = validator.Validate(appData); Assert.AreEqual(true, results.IsValid); }
public void TestNestedRepeaterFailRootCompareBusinessRule() { string json = AssemblyResourceReader.ReadAsString("Test_Data.ValidateRule2.json"); ValidateTruthCondition condition = JsonConvert.DeserializeObject<ValidateTruthCondition>(json); ControlList controlList = new ControlList(); RepeaterControl repeater = new RepeaterControl { Id = 3, Name = "Repeater" }; controlList.Add(repeater); RepeaterControl nestedRepeater = new RepeaterControl { Id = 4, Name = "NestedRepeater", ParentId = 3 }; repeater.Controls.Add(nestedRepeater); RepeaterControl nestedNestedRepeater = new RepeaterControl { Id = 5, Name = "NestedNestedRepeater", ParentId = 4 }; nestedRepeater.Controls.Add(nestedNestedRepeater); nestedNestedRepeater.Controls.Add(new TextControl { Id = 1, Name = "Field1", ParentId = 5 }); // Compare to root level controlList.Add(new TextControl { Id = 2, Name = "Field2" }); var validExample = new Dictionary<string, object> { { "Field1", "Is Valid" } }; var invalidExample = new Dictionary<string, object> { { "Field1", "Is Not Valid" } }; ApplicationData appData = new ApplicationData(); Dictionary<string, object>[] repeaterData = new Dictionary<string, object>[2]; appData.Add("Field2", "Is Not Valid"); appData.Add("Repeater", repeaterData); repeaterData[0] = new Dictionary<string, object>() { { "NestedRepeater", new[] { new Dictionary<string, object>() { { "NestedNestedRepeater", new[] { invalidExample, validExample } } }, new Dictionary<string, object>() { { "NestedNestedRepeater", new[] { invalidExample, invalidExample } } }, } } }; repeaterData[1] = new Dictionary<string, object>() { { "NestedRepeater", new[] { new Dictionary<string, object>() { { "NestedNestedRepeater", new[] { invalidExample } } }, new Dictionary<string, object>() { { "NestedNestedRepeater", new[] { validExample } } }, } } }; TruthConditionEvaluatorFactory evaluatorFactory = new TruthConditionEvaluatorFactory(); ITruthConditionValidator validator = new ITruthConditionValidator(condition, controlList, evaluatorFactory); ValidationResults results = validator.Validate(appData); Assert.AreEqual(false, results.IsValid); Assert.AreEqual(4, results.Count); Assert.AreEqual("Repeater[0].NestedRepeater[0].NestedNestedRepeater[0].Field1", results.ToArray()[0].Key); Assert.AreEqual("Repeater[0].NestedRepeater[1].NestedNestedRepeater[0].Field1", results.ToArray()[1].Key); Assert.AreEqual("Repeater[0].NestedRepeater[1].NestedNestedRepeater[1].Field1", results.ToArray()[2].Key); Assert.AreEqual("Repeater[1].NestedRepeater[0].NestedNestedRepeater[0].Field1", results.ToArray()[3].Key); }
/// <summary> /// Sets up the dependencies. /// </summary> private static void SetupDependencies() { IConfigurationSource config = ConfigurationSourceFactory.Create(); Logger.SetLogWriter(new LogWriterFactory(config).Create()); ExceptionPolicy.SetExceptionManager(new ExceptionPolicyFactory(config).CreateManager()); JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Formatting = Formatting.None, Converters = new JsonConverter[] { new JsonKnownTypeConverter() } }; try { var container = new UnityContainer().LoadConfiguration(); container.AddNewExtension<SecurityDependencyContainer>(); container.AddNewExtension<WorflowDependencyContainer>(); var configuration = container.Resolve<EventHandlerConfiguration>(); dataAccess = container.Resolve<IDataAccess>(); formServiceGateway = container.Resolve<IFormServiceGateway>(); workbenchServiceGateway = container.Resolve<IWorkbenchServiceGateway>(); var securityServiceGateway = container.Resolve<ISecurityService>(); entitlementProvider = container.Resolve<IApplicationEntitlementProvider>(); workflowService = container.Resolve<IWorkflowService>(); evaluatorFactory = new TruthConditionEvaluatorFactory(); session = securityServiceGateway.CreateSession(configuration.EventHandlerServiceUser, configuration.EventHandlerServicePassword); SystemSettings settings = workbenchServiceGateway.GetSystemSettings(session.Token); container.RegisterInstance(settings); events = dataAccess.GetNewEvents(); container.RegisterInstance(workbenchServiceGateway.GetRoleList(session.Token)); container.RegisterInstance<Func<UserSearchCriteria, UserList>>(usc => workbenchServiceGateway.GetUserList(session.Token, usc)); container.RegisterInstance(workbenchServiceGateway.GetServiceEndpointList(session.Token, true)); responseHandlers = container.ResolveAll<IEventActionResponseHandler>(); } catch (Exception e) { bool rethrow = ExceptionPolicy.HandleException(e, "Default"); if (rethrow) { throw; } Console.WriteLine(ExceptionMessages.Generic); Environment.Exit(1); } }
public void TestInitialize() { this.register = new TruthConditionEvaluatorFactory(); }
/// <summary> /// Creates a <see cref="Microsoft.Practices.EnterpriseLibrary.Validation.Validator"/> that will /// validate <paramref name="pageRules"/>. /// </summary> /// <param name="pageRules">The list of page rules to create a validator for.</param> /// <param name="evaluatorFactory">A <see cref="TruthConditionEvaluatorFactory "/>.</param> /// <returns> /// A <see cref="Microsoft.Practices.EnterpriseLibrary.Validation.Validator"/> that will /// validate <paramref name="pageRules"/>. /// </returns> public Validator CreatePageValidator(TruthConditionList pageRules, TruthConditionEvaluatorFactory evaluatorFactory) { List<Validator> validatorsList = pageRules.OfType<ValidateTruthCondition>().Select(validationRule => new ITruthConditionValidator(validationRule, this.allControls, evaluatorFactory)).Cast<Validator>().ToList(); return new EntLib.AndCompositeValidator(validatorsList.ToArray()); }