Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        //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}");
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }