public void CustomResultCodeErrorTest() { User user = TestData.TestUser; Assert.AreEqual(0, user.Id); user.Password = "******"; var executor = DbExecution <User, ExecutionResultCode> .Create() .Execute(user, LoginUser); Assert.IsTrue(executor.IsError); Assert.AreEqual(ExecutionResultCode.InvalidPasswordLength, (ExecutionResultCode)executor.Error); Assert.AreEqual( DbExecutionErrorMessage.CUSTOM_ERROR_CODE_MESSAGE + ExecutionResultCode.InvalidPasswordLength, executor.Error.Message); Assert.AreEqual(0, user.Id); user.Password = "******"; executor = DbExecution <User, ExecutionResultCode> .Create() .Execute(user, LoginUser); Assert.IsFalse(executor.IsError); Assert.IsNotNull(executor.Error); Assert.AreEqual(DbExecutionErrorMessage.NO_ERRORS_MESSAGE, executor.Error.Message); Assert.AreEqual(7, executor.Result.Id); }
//IXapValidationService IXapValidationProvider.LoadRules<T>(T obj,string propertyName, IXapValidationService validationService,IXapUser xapUser,string ruleType) { // _validationService = validationService ?? ValidationService.Create(); // try { // string dbEnvironment = string.Empty; // string lobName = string.Empty; // string componentName = string.Empty; // string ruleDependents = string.Empty; // GetDbContext<T>(obj, out dbEnvironment, out lobName, out componentName); // db = DbFactory.Instance.Db(dbEnvironment, lobName, "CORE.SelectPropertyRules"); // XapDataReader dr = db.AddParameter(DbFactory.Instance.DbParameter("RuleType", ruleType)) // .AddParameter(DbFactory.Instance.DbParameter("LobName", lobName)) // .AddParameter(DbFactory.Instance.DbParameter("ComponentName", componentName)) // .AddParameter(DbFactory.Instance.DbParameter("NameSpace", obj.GetType().FullName)) // .AddParameter(DbFactory.Instance.DbParameter("PropertyName",propertyName)) // .ExecuteReader(); // while (dr.Read()) { // ruleSet = validationService.AddRuleSet(dr.GetString("PropertyName")); // rule = ruleSet.CreateRule(dr.GetString("RuleName")); // rule.RuleType = dr.GetString("RuleType"); // rule.RuleSyntax = dr.GetString("RuleSyntax"); // rule.RuleDescription = dr.GetString("RuleDesc"); // rule.RuleMessage = dr.GetString("RuleMessage"); // rule.PropertyName = dr.GetString("PropertyName"); // ruleDependents = dr.GetString("Dependencies"); // string[] dependents = ruleDependents.Split(','); // for (int i = 0; i < dependents.Length; i++) { // if (!rule.HasDependent(dependents[i])) { // rule.AddDependent(XapRuleDependent.Create(dependents[i])); // } // } // ruleSet.AddRule(rule); // } // PrepareRuleSyntax<T>(obj, validationService,xapUser); // return _validationService; // } catch (XapException ex) { // throw; // } catch (Exception ex) { // throw new XapException($"Error loading validation rules for {obj.GetType().FullName}", ex); // } finally { // db.CloseConnection(); // } //} private void GetDbContext <T>(T obj, out string dbEnvironment, out string lobName, out string componentName) { DbExecution dbExecution = SharedMethods.GetCustomAttribute <DbExecution>(obj); if (dbExecution != null) { dbEnvironment = dbExecution.DbEnvironment; } else { throw new XapException($"DbEnvironment not found for {obj.GetType().FullName}"); } lobName = (obj as XapObjectCore).Properties.GetProperty("LobName")?.GetValue(obj).ToString(); if (string.IsNullOrEmpty(lobName)) { throw new XapException($"Db Connection name not found for {obj.GetType().FullName}"); } componentName = (obj as XapObjectCore).Properties.GetProperty("ComponentName")?.GetValue(obj).ToString(); if (string.IsNullOrEmpty(componentName)) { throw new XapException($"Component type not found for {obj.GetType().FullName}"); } }
public void PossibleExecutionResultCodeTest() { var execution = DbExecution <User, ExecutionResultCode> .Create() .SetPossibleResultCode(ExecutionResultCode.UnableLoadData) .Execute(exec => { throw new Exception(EXCEPTION); });//emulate exception during data load Assert.IsTrue(execution.IsError); Assert.IsTrue(execution.Error.IsException); Assert.IsTrue(execution.Error.IsCustomResultCode); Assert.AreEqual(ExecutionResultCode.UnableLoadData, execution.Error.ResultCode); Assert.AreEqual(EXCEPTION, execution.Error.Exception.Message); }
public void StringMessageErrorTest() { User user = TestData.TestUser; string message1 = "User Id should be more than zero"; string message2 = "Password Is Empty"; var executor = DbExecution <User, ExecutionResultCode> .Create() .IsZero(user.Id, message1) .IsFalse(string.IsNullOrEmpty(user.Password), message2) .Execute(user, LoginUser); Assert.IsTrue(executor.IsError); Assert.AreEqual(message2, executor.Error.Message); }
internal IXapPocoMap GetPocoMap <T>(T obj) { IXapPocoMap pocoMap = pocoMaps.GetItem(typeof(T).FullName); if (pocoMap != null) { return(pocoMap); } DbExecution dbExecution = SharedMethods.GetCustomAttribute <DbExecution>(obj); if (dbExecution == null) { return(null); } pocoMap = PocoMap.Create(); pocoMap.ObjectName = obj.GetType().FullName; pocoMap.InsertProcedure = dbExecution.InsertProcedure; pocoMap.SelectProcedure = dbExecution.SelectProcedure; pocoMap.SelectListProcedure = dbExecution.SelectListProcedure; pocoMap.UpdateProcedure = dbExecution.UpdateProcedure; pocoMap.DeleteProcedure = dbExecution.DeleteProcedure; foreach (PropertyInfo prop in PropertyService.Instance.GetInterfaceProperties <T>(obj).GetProperties()) { object[] attributes = prop.GetCustomAttributes(typeof(DbBinding), true); if (attributes.Length == 1) { IXapPocoField pocoField = PocoField.Create(); pocoField.DbColumn = ((DbBinding)attributes[0]).DbColumn; pocoField.FieldName = prop.Name; pocoField.DoesInsert = ((DbBinding)attributes[0]).DoesInsert; pocoField.DoesSelect = ((DbBinding)attributes[0]).DoesSelect; pocoField.DoesSelectList = ((DbBinding)attributes[0]).DoesSelectList; pocoField.DoesUpdate = ((DbBinding)attributes[0]).DoesUpdate; pocoField.DoesDelete = ((DbBinding)attributes[0]).DoesDelete; pocoField.IsIdentity = ((DbBinding)attributes[0]).IsIdentityField; pocoField.DataType = ((DbBinding)attributes[0]).DataType; pocoMap.AddField(pocoField); } } pocoMaps.AddItem(pocoMap.ObjectName, pocoMap); return(pocoMap); }
public void AnonymousDelegateTest() { User user = TestData.TestUser; Assert.AreEqual(0, user.Id); var executor = DbExecution <User, ExecutionResultCode> .Create() .Execute(exec => exec.Error = "Test"); Assert.IsTrue(executor.IsError); Assert.AreEqual("Test", executor.Error.Message); executor = DbExecution <User, ExecutionResultCode> .Create() .Execute(exec => { user.Id = 5; exec.Result = user; }); Assert.IsFalse(executor.IsError); Assert.AreEqual(5, executor.Result.Id); }