public void GenerateDeleteWithConditionsParameterTest() { var condition = new QueryConditionBuilder() .DeclareConditionNode( QueryConditionNodeType.And, () => new QueryConditionBuilder().DeclareCondition("FirstName", QueryConditionType.NotEquals, "Stevenie"), () => new QueryConditionBuilder() .DeclareConditionNode( QueryConditionNodeType.Or, () => new QueryConditionBuilder() .DeclareCondition("LastName", QueryConditionType.NotEquals, "Zeitlhofinger"), () => new QueryConditionBuilder() .DeclareCondition("LastName", QueryConditionType.Like, "Halbmayr"))) .Build(); string expectedQuery = "DELETE FROM [Hurace].[Skier] " + "WHERE ([FirstName] != @FirstName0 AND ([LastName] != @LastName0 OR [LastName] LIKE @LastName1))"; var queryGenerator = new SqlQueryGenerator <Entities.Skier>(); (var actualQuery, var actualQueryParameters) = queryGenerator.GenerateDeleteQuery(condition); Assert.Equal(expectedQuery, actualQuery); Assert.Equal(3, actualQueryParameters.Length); var firstNameParameter = actualQueryParameters.First(qp => qp.ParameterName == "FirstName0"); var lastNameParameter1 = actualQueryParameters.First(qp => qp.ParameterName == "LastName0"); var lastNameParameter2 = actualQueryParameters.First(qp => qp.ParameterName == "LastName1"); Assert.Equal("Stevenie", firstNameParameter.Value); Assert.Equal("Zeitlhofinger", lastNameParameter1.Value); Assert.Equal("Halbmayr", lastNameParameter2.Value); }
public async Task <bool> DeleteByIdAsync(int id) { (string query, QueryParameter[] parameters) = SqlQueryGenerator.GenerateDeleteQuery(id); int numberOfAffectedRows = await template.ExecuteAsync(query, parameters) .ConfigureAwait(false); return(numberOfAffectedRows == 1); }
public void GenerateDeleteQuery_NoPrimaryKey_Valid() { // Arrange var generator = new SqlQueryGenerator <HeapEntity>("dbo", "Users"); // Act var deleteQuery = generator.GenerateDeleteQuery(); // Assert Assert.Equal($"DELETE FROM [dbo].[Users] OUTPUT [deleted].[Username], [deleted].[Password] WHERE [dbo].[Users].[Username] = @Username AND [dbo].[Users].[Password] = @Password;", deleteQuery); }
public void GenerateDeleteQuery_CustomColumnNames_Valid() { // Arrange var generator = new SqlQueryGenerator <CustomColumnNamesEntity>("dbo", "Orders"); // Act var deleteQuery = generator.GenerateDeleteQuery(); // Assert Assert.Equal($"DELETE FROM [dbo].[Orders] OUTPUT [deleted].[OrderId] AS [Id], [deleted].[DateCreated] AS [Date] WHERE [dbo].[Orders].[OrderId] = @Id;", deleteQuery); }
public void GenerateDeleteQuery_CustomSchema_Valid() { // Arrange var generator = new SqlQueryGenerator <SinglePrimaryKeyEntity>("account", "Users"); // Act var query = generator.GenerateDeleteQuery(); // Assert Assert.Equal("DELETE FROM [account].[Users] OUTPUT [deleted].[Id], [deleted].[Username], [deleted].[Password] WHERE [account].[Users].[Id] = @Id;", query); }
public async Task <int> DeleteAsync(IQueryCondition condition) { if (condition is null) { throw new ArgumentNullException(nameof(condition)); } (string query, QueryParameter[] parameters) = SqlQueryGenerator.GenerateDeleteQuery(condition); return(await template.ExecuteAsync(query, parameters) .ConfigureAwait(false)); }
public void GenerateDeleteByIdQueryTest() { string expectedQuery = "DELETE FROM [Hurace].[StartPosition] WHERE [Id] = @Id0"; int idToDelete = 135; var queryGenerator = new SqlQueryGenerator <Entities.StartPosition>(); (var generatedQuery, var queryParameters) = queryGenerator.GenerateDeleteQuery(idToDelete); Assert.Equal(expectedQuery, generatedQuery); Assert.Single(queryParameters); Assert.Equal(idToDelete, queryParameters.First().Value); }