Skip to content

Commit

Permalink
#234 #235 #236 #237 #238 #239 - Integration Tests for MySqlConnector.
Browse files Browse the repository at this point in the history
  • Loading branch information
mikependon committed Oct 9, 2020
1 parent 8762370 commit 27a02f3
Show file tree
Hide file tree
Showing 7 changed files with 795 additions and 40 deletions.
280 changes: 258 additions & 22 deletions RepoDb.MySqlConnector/RepoDb.MySqlConnector.IntegrationTests/Helper.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,30 @@ public void TestMySqlConnectionInsertAllViaTableNameAsDynamicsForIdentity()
}
}

[TestMethod]
public void TestMySqlConnectionInsertAllViaTableNameAsExpandoObjectsForIdentity()
{
// Setup
var tables = Helper.CreateCompleteTablesAsExpandoObjects(10);

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.InsertAll(ClassMappedNameCache.Get<CompleteTable>(),
tables);

// Assert
Assert.AreEqual(tables.Count, connection.CountAll<CompleteTable>());
Assert.AreEqual(tables.Count, result);

// Act
var queryResult = connection.QueryAll<CompleteTable>();

// Assert
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

[TestMethod]
public void TestMySqlConnectionInsertAllViaTableNameForNonIdentity()
{
Expand Down Expand Up @@ -228,6 +252,30 @@ public void TestMySqlConnectionInsertAllViaTableNameAsDynamicsForNonIdentity()
}
}

[TestMethod]
public void TestMySqlConnectionInsertAllViaTableNameAsExpandoObjectsForNonIdentity()
{
// Setup
var tables = Helper.CreateNonIdentityCompleteTablesAsExpandoObjects(10);

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.InsertAll(ClassMappedNameCache.Get<NonIdentityCompleteTable>(),
tables);

// Assert
Assert.AreEqual(tables.Count, connection.CountAll<NonIdentityCompleteTable>());
Assert.AreEqual(tables.Count, result);

// Act
var queryResult = connection.QueryAll<NonIdentityCompleteTable>();

// Assert
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

#endregion

#region Async
Expand Down Expand Up @@ -280,6 +328,30 @@ public void TestMySqlConnectionInsertAllAsyncViaTableNameAsDynamicsForIdentity()
}
}

[TestMethod]
public void TestMySqlConnectionInsertAllAsyncViaTableNameAsExpandoObjectsForIdentity()
{
// Setup
var tables = Helper.CreateCompleteTablesAsExpandoObjects(10);

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.InsertAllAsync(ClassMappedNameCache.Get<CompleteTable>(),
tables).Result;

// Assert
Assert.AreEqual(tables.Count, connection.CountAll<CompleteTable>());
Assert.AreEqual(tables.Count, result);

// Act
var queryResult = connection.QueryAll<CompleteTable>();

// Assert
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

[TestMethod]
public void TestMySqlConnectionInsertAllViaTableNameAsyncForNonIdentity()
{
Expand Down Expand Up @@ -328,6 +400,30 @@ public void TestMySqlConnectionInsertAllAsyncViaTableNameAsDynamicsForNonIdentit
}
}

[TestMethod]
public void TestMySqlConnectionInsertAllAsyncViaTableNameAsExpandoObjectsForNonIdentity()
{
// Setup
var tables = Helper.CreateNonIdentityCompleteTablesAsExpandoObjects(10);

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.InsertAllAsync(ClassMappedNameCache.Get<NonIdentityCompleteTable>(),
tables).Result;

// Assert
Assert.AreEqual(tables.Count, connection.CountAll<NonIdentityCompleteTable>());
Assert.AreEqual(tables.Count, result);

// Act
var queryResult = connection.QueryAll<NonIdentityCompleteTable>();

// Assert
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

#endregion

#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,31 @@ public void TestMySqlConnectionInsertViaTableNameAsDynamicForIdentity()
}
}

[TestMethod]
public void TestMySqlConnectionInsertViaTableNameAsExpandoObjectForIdentity()
{
// Setup
var table = Helper.CreateCompleteTablesAsExpandoObjects(1).First();

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.Insert(ClassMappedNameCache.Get<CompleteTable>(),
table);

// Assert
Assert.AreEqual(1, connection.CountAll<CompleteTable>());
Assert.IsTrue(Convert.ToInt64(result) > 0);

// Act
var queryResult = connection.Query<CompleteTable>(result);

// Assert
Assert.AreEqual(1, queryResult?.Count());
Helper.AssertMembersEquality(queryResult.First(), table);
}
}

[TestMethod]
public void TestMySqlConnectionInsertViaTableNameForNonIdentity()
{
Expand Down Expand Up @@ -237,6 +262,31 @@ public void TestMySqlConnectionInsertViaTableNameAsDynamicForNonIdentity()
}
}

[TestMethod]
public void TestMySqlConnectionInsertViaTableNameAsExpandoObjectForNonIdentity()
{
// Setup
var table = Helper.CreateNonIdentityCompleteTablesAsExpandoObjects(1).First();

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.Insert(ClassMappedNameCache.Get<NonIdentityCompleteTable>(),
table);

// Assert
Assert.AreEqual(1, connection.CountAll<NonIdentityCompleteTable>());
Assert.IsTrue(Convert.ToInt64(result) > 0);

// Act
var queryResult = connection.Query<NonIdentityCompleteTable>(result);

// Assert
Assert.AreEqual(1, queryResult?.Count());
Helper.AssertMembersEquality(queryResult.First(), table);
}
}

#endregion

#region Async
Expand Down Expand Up @@ -291,6 +341,31 @@ public void TestMySqlConnectionInsertAsyncViaTableNameAsDynamicForIdentity()
}
}

[TestMethod]
public void TestMySqlConnectionInsertAsyncViaTableNameAsExpandoObjectForIdentity()
{
// Setup
var table = Helper.CreateCompleteTablesAsExpandoObjects(1).First();

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.InsertAsync(ClassMappedNameCache.Get<CompleteTable>(),
table).Result;

// Assert
Assert.AreEqual(1, connection.CountAll<CompleteTable>());
Assert.IsTrue(Convert.ToInt64(result) > 0);

// Act
var queryResult = connection.Query<CompleteTable>(result);

// Assert
Assert.AreEqual(1, queryResult?.Count());
Helper.AssertMembersEquality(queryResult.First(), table);
}
}

[TestMethod]
public void TestMySqlConnectionInsertViaTableNameAsyncForNonIdentity()
{
Expand Down Expand Up @@ -341,6 +416,31 @@ public void TestMySqlConnectionInsertAsyncViaTableNameAsDynamicForNonIdentity()
}
}

[TestMethod]
public void TestMySqlConnectionInsertAsyncViaTableNameAsExpandoObjectForNonIdentity()
{
// Setup
var table = Helper.CreateNonIdentityCompleteTablesAsExpandoObjects(1).First();

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.InsertAsync(ClassMappedNameCache.Get<NonIdentityCompleteTable>(),
table).Result;

// Assert
Assert.AreEqual(1, connection.CountAll<NonIdentityCompleteTable>());
Assert.IsTrue(Convert.ToInt64(result) > 0);

// Act
var queryResult = connection.Query<NonIdentityCompleteTable>(result);

// Assert
Assert.AreEqual(1, queryResult?.Count());
Helper.AssertMembersEquality(queryResult.First(), table);
}
}

#endregion

#endregion
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using RepoDb.Extensions;
using System.Linq;
using RepoDb.MySqlConnector.IntegrationTests.Setup;
using MySqlConnector;
using RepoDb.Extensions;
using RepoDb.MySqlConnector.IntegrationTests.Models;
using RepoDb.MySqlConnector.IntegrationTests.Setup;
using System.Collections.Generic;
using System.Linq;

namespace RepoDb.MySqlConnector.IntegrationTests.Operations
{
Expand Down Expand Up @@ -392,6 +393,31 @@ public void TestMySqlConnectionMergeAllViaTableNameForIdentityForEmptyTable()
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllAsExpandoObjectViaTableNameForIdentityForEmptyTable()
{
// Setup
var tables = Helper.CreateCompleteTablesAsExpandoObjects(10);

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.MergeAll(ClassMappedNameCache.Get<CompleteTable>(),
tables);

// Assert
Assert.AreEqual(tables.Count, connection.CountAll<CompleteTable>());
Assert.AreEqual(tables.Count, result);

// Act
var queryResult = connection.QueryAll<CompleteTable>();

// Assert
Assert.AreEqual(tables.Count, queryResult.Count());
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllViaTableNameForIdentityForNonEmptyTable()
{
Expand Down Expand Up @@ -419,6 +445,34 @@ public void TestMySqlConnectionMergeAllViaTableNameForIdentityForNonEmptyTable()
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllAsExpandoObjectViaTableNameForIdentityForNonEmptyTable()
{
// Setup
var entities = Database.CreateCompleteTables(10).AsList();

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Setup
var tables = Helper.CreateCompleteTablesAsExpandoObjects(10).AsList();
tables.ForEach(e => ((IDictionary<string, object>)e)["Id"] = entities[tables.IndexOf(e)].Id);

// Act
var result = connection.MergeAll(ClassMappedNameCache.Get<CompleteTable>(),
tables);

// Assert
Assert.AreEqual(entities.Count, connection.CountAll<CompleteTable>());

// Act
var queryResult = connection.QueryAll<CompleteTable>();

// Assert
Assert.AreEqual(entities.Count, queryResult.Count());
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllViaTableNameForIdentityForNonEmptyTableWithQualifiers()
{
Expand Down Expand Up @@ -732,6 +786,31 @@ public void TestMySqlConnectionMergeAllViaTableNameAsyncForIdentityForEmptyTable
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllAsyncAsExpandoObjectViaTableNameForIdentityForEmptyTable()
{
// Setup
var tables = Helper.CreateCompleteTablesAsExpandoObjects(10);

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Act
var result = connection.MergeAllAsync(ClassMappedNameCache.Get<CompleteTable>(),
tables).Result;

// Assert
Assert.AreEqual(tables.Count, connection.CountAll<CompleteTable>());
Assert.AreEqual(tables.Count, result);

// Act
var queryResult = connection.QueryAll<CompleteTable>();

// Assert
Assert.AreEqual(tables.Count, queryResult.Count());
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllViaTableNameAsyncForIdentityForNonEmptyTable()
{
Expand Down Expand Up @@ -759,6 +838,34 @@ public void TestMySqlConnectionMergeAllViaTableNameAsyncForIdentityForNonEmptyTa
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllAsyncAsExpandoObjectViaTableNameForIdentityForNonEmptyTable()
{
// Setup
var entities = Database.CreateCompleteTables(10).AsList();

using (var connection = new MySqlConnection(Database.ConnectionString))
{
// Setup
var tables = Helper.CreateCompleteTablesAsExpandoObjects(10).AsList();
tables.ForEach(e => ((IDictionary<string, object>)e)["Id"] = entities[tables.IndexOf(e)].Id);

// Act
var result = connection.MergeAllAsync(ClassMappedNameCache.Get<CompleteTable>(),
tables).Result;

// Assert
Assert.AreEqual(entities.Count, connection.CountAll<CompleteTable>());

// Act
var queryResult = connection.QueryAll<CompleteTable>();

// Assert
Assert.AreEqual(entities.Count, queryResult.Count());
tables.ForEach(table => Helper.AssertMembersEquality(queryResult.First(e => e.Id == ((dynamic)table).Id), table));
}
}

[TestMethod]
public void TestMySqlConnectionMergeAllViaTableNameAsyncForIdentityForNonEmptyTableWithQualifiers()
{
Expand Down
Loading

0 comments on commit 27a02f3

Please sign in to comment.