public void GetTableNameFromArguments_ShouldReturnValidTableName(string query) { var arguments = SelectUtils.GetArgumentsFromQuery(query); var actual = SelectUtils.GetTableNameFromArguments(arguments); var expected = "users"; Assert.Equal(expected, actual); }
public override bool Check(string query) { var tableName = SelectUtils.GetTableNameFromArguments(SelectUtils.GetArgumentsFromQuery(query)); if (tableName == null || !_database.GetTableNames().Contains(tableName.ToLower())) { throw new TableNotFoundException(tableName); } return(this.CheckNext(query)); }
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)); }
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)); }
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]))); }
public override bool Check(string query) { var queryColumnNames = SelectUtils.GetColumnNamesFromQuery(query); if (queryColumnNames.Length == 0 || queryColumnNames[0] == "*") { return(CheckNext(query)); } var tableName = SelectUtils.GetTableNameFromArguments(SelectUtils.GetArgumentsFromQuery(query)).ToLower(); var databaseColumnNames = _database.GetTable(tableName).GetColumnProperties().Select(x => x.Name).ToArray(); foreach (var columnName in (string[])queryColumnNames) { if (!databaseColumnNames.Contains(columnName) && columnName.ToLower() != "id") { throw new UnknownColumnNameException(columnName); } } return(CheckNext(query)); }
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)); }