コード例 #1
0
        public void GetConditionFromQuery_ConditionExists_ShouldReturnValidCondition(string query)
        {
            var actual = SelectUtils.GetConditionFromQuery(query);

            var expected = new string[] { "isAdult", "true" };

            Assert.Equal(expected, actual);
        }
コード例 #2
0
        public override bool Check(string query)
        {
            var arguments = SelectUtils.GetArgumentsFromQuery(query);
            var keyword   = SelectUtils.GetWhereKeywordFromArguments(arguments);

            var condition = SelectUtils.GetConditionFromQuery(query);
            var tableName = SelectUtils.GetTableNameFromArguments(arguments).ToLower();

            if (keyword != null && condition == null)
            {
                throw new MalformedArgumentsException();
            }
            return(CheckNext(query));
        }
コード例 #3
0
        public override bool Check(string query)
        {
            var arguments = SelectUtils.GetArgumentsFromQuery(query);

            var condition = SelectUtils.GetConditionFromQuery(query);
            var tableName = SelectUtils.GetTableNameFromArguments(arguments).ToLower();

            var columnNames = _database.GetTable(tableName).GetColumnProperties().Select(x => x.Name).ToArray();

            if (condition != null && !columnNames.Contains(condition[0]))
            {
                throw new UnknownColumnNameException(condition[0]);
            }

            return(CheckNext(query));
        }
コード例 #4
0
        private Record[] SelectData(string query)
        {
            var arguments   = SelectUtils.GetArgumentsFromQuery(query);
            var tableName   = SelectUtils.GetTableNameFromArguments(arguments).ToLower().TrimEnd(';');
            var columnNames = SelectUtils.GetColumnNamesFromQuery(query);

            if (columnNames.Length == 0)
            {
                return(null);
            }
            if (columnNames[0] == "*")
            {
                columnNames = null;
            }

            var condition = SelectUtils.GetConditionFromQuery(query);

            return(_database.GetTable(tableName).GetRecords(columnNames, condition == null ? null : new Condition(condition[0], condition[1])));
        }
コード例 #5
0
        public override bool Check(string query)
        {
            var arguments = SelectUtils.GetArgumentsFromQuery(query);

            var condition = SelectUtils.GetConditionFromQuery(query);

            if (condition == null)
            {
                return(CheckNext(query));
            }

            var tableName = SelectUtils.GetTableNameFromArguments(arguments).ToLower();

            var columnTypes = _database.GetTable(tableName).GetColumnProperties();
            var type        = columnTypes.First(x => x.Name == condition[0]).Type;

            if (!GeneralUtils.IsTypeValid(type, condition[1]))
            {
                throw new InvalidColumnTypeException(condition[0], type);
            }

            return(CheckNext(query));
        }
コード例 #6
0
        public void GetConditionFromQuery_ConditionNotExists_ShouldReturnNull(string query)
        {
            var actual = SelectUtils.GetConditionFromQuery(query);

            Assert.Null(actual);
        }