/RepoDb.Core/RepoDb.Tests/RepoDb.IntegrationTests/InheritanceTest.cs
https://github.com/mikependon/RepoDb · C# · 376 lines · 222 code · 86 blank · 68 comment · 4 complexity · 6084eaceee06b92579ac44b11f555648 MD5 · raw file
- using System;
- using Microsoft.Data.SqlClient;
- using System.Linq;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using RepoDb.IntegrationTests.Models;
- using RepoDb.IntegrationTests.Setup;
- namespace RepoDb.IntegrationTests
- {
- [TestClass]
- public class InheritedTest
- {
- [TestInitialize]
- public void Initialize()
- {
- Database.Initialize();
- Cleanup();
- }
- [TestCleanup]
- public void Cleanup()
- {
- Database.Cleanup();
- }
- #region Delete
- [TestMethod]
- public void TestSqlConnectionDeleteForInheritedViaDataEntity()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- connection.Insert<InheritedIdentityTable>(entity);
- // Act
- var deleteResult = connection.Delete<InheritedIdentityTable>(entity);
- // Assert
- Assert.IsTrue(deleteResult > 0);
- Assert.AreEqual(0, connection.CountAll<InheritedIdentityTable>());
- }
- }
- [TestMethod]
- public void TestSqlConnectionDeleteForInheritedViaPrimary()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- connection.Insert<InheritedIdentityTable>(entity);
- // Act
- var deleteResult = connection.Delete<InheritedIdentityTable>(entity.Id);
- // Assert
- Assert.IsTrue(deleteResult > 0);
- Assert.AreEqual(0, connection.CountAll<InheritedIdentityTable>());
- }
- }
- #endregion
- #region Insert
- [TestMethod]
- public void TestSqlConnectionInsertForInherited()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- var insertResult = connection.Insert<InheritedIdentityTable, long>(entity);
- // Assert
- Assert.IsTrue(insertResult > 0);
- Assert.AreEqual(entity.Id, insertResult);
- // Act
- var queryResult = connection.Query<InheritedIdentityTable>(entity.Id).FirstOrDefault();
- // Assert
- Helper.AssertPropertiesEquality(entity, queryResult);
- }
- }
- #endregion
- #region InsertAll
- [TestMethod]
- public void TestSqlConnectionInsertAllForInherited()
- {
- // Setup
- var entities = Helper.CreateInheritedIdentityTables(10);
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- var insertAllResult = connection.InsertAll<InheritedIdentityTable>(entities);
- // Assert
- Assert.AreEqual(entities.Count, insertAllResult);
- Assert.AreEqual(entities.Count, connection.CountAll<InheritedIdentityTable>());
- // Act
- var queryResult = connection.QueryAll<InheritedIdentityTable>();
- // Assert
- Assert.AreEqual(entities.Count, queryResult.Count());
- entities.ForEach(entity =>
- Helper.AssertPropertiesEquality(entity, queryResult.First(e => e.Id == entity.Id)));
- }
- }
- #endregion
- #region Merge
- [TestMethod]
- public void TestSqlConnectionMergeForInherited()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- var mergeResult = connection.Merge<InheritedIdentityTable, long>(entity);
- // Assert
- Assert.IsTrue(mergeResult > 0);
- Assert.AreEqual(entity.Id, mergeResult);
- // Act
- var queryResult = connection.Query<InheritedIdentityTable>(entity.Id).FirstOrDefault();
- // Assert
- Helper.AssertPropertiesEquality(entity, queryResult);
- }
- }
- [TestMethod]
- public void TestSqlConnectionMergeForInheritedWithNonEmptyTable()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- var insertResult = connection.Merge<InheritedIdentityTable, long>(entity);
- // Assert
- Assert.IsTrue(insertResult > 0);
- Assert.AreEqual(entity.Id, insertResult);
- Assert.AreEqual(1, connection.CountAll<InheritedIdentityTable>());
- // Setup
- entity.ColumnBit = false;
- entity.ColumnDateTime2 = DateTime.UtcNow;
- // Act
- var mergeResult = connection.Merge<InheritedIdentityTable, long>(entity);
- // Assert
- Assert.IsTrue(mergeResult > 0);
- Assert.AreEqual(entity.Id, mergeResult);
- // Act
- var queryResult = connection.Query<InheritedIdentityTable>(entity.Id).FirstOrDefault();
- // Assert
- Helper.AssertPropertiesEquality(entity, queryResult);
- }
- }
- #endregion
- #region MergeAll
- [TestMethod]
- public void TestSqlConnectionMergeAllForInherited()
- {
- // Setup
- var entities = Helper.CreateInheritedIdentityTables(10);
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- var mergeAllRequest = connection.MergeAll<InheritedIdentityTable>(entities);
- // Assert
- Assert.AreEqual(entities.Count, mergeAllRequest);
- // Act
- var queryResult = connection.QueryAll<InheritedIdentityTable>();
- // Assert
- Assert.AreEqual(entities.Count, queryResult.Count());
- entities.ForEach(entity =>
- Helper.AssertPropertiesEquality(entity, queryResult.First(e => e.Id == entity.Id)));
- }
- }
- [TestMethod]
- public void TestSqlConnectionMergeAllForInheritedWithNonEmptyTables()
- {
- // Setup
- var entities = Helper.CreateInheritedIdentityTables(10);
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- var insertAllResult = connection.InsertAll<InheritedIdentityTable>(entities);
- // Setup
- entities.ForEach(entity =>
- {
- entity.ColumnBit = false;
- entity.ColumnDateTime2 = DateTime.UtcNow;
- });
- // Act
- var mergeAllResult = connection.MergeAll<InheritedIdentityTable>(entities);
- // Assert
- Assert.AreEqual(entities.Count, mergeAllResult);
- // Act
- var queryResult = connection.QueryAll<InheritedIdentityTable>();
- // Assert
- Assert.AreEqual(entities.Count, queryResult.Count());
- entities.ForEach(entity =>
- Helper.AssertPropertiesEquality(entity, queryResult.First(e => e.Id == entity.Id)));
- }
- }
- #endregion
- #region Query
- [TestMethod]
- public void TestSqlConnectionQueryForInherited()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- connection.Insert<InheritedIdentityTable, long>(entity);
- // Act
- var queryResult = connection.Query<InheritedIdentityTable>(entity.Id).FirstOrDefault();
- // Assert
- Assert.IsNotNull(queryResult);
- Helper.AssertPropertiesEquality(entity, queryResult);
- }
- }
- #endregion
- #region Update
- [TestMethod]
- public void TestSqlConnectionUpdateForInheritedViaDataEntity()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- connection.Insert<InheritedIdentityTable, long>(entity);
- // Setup
- entity.ColumnBit = false;
- entity.ColumnDateTime2 = DateTime.UtcNow;
- // Act
- var updateResult = connection.Update<InheritedIdentityTable>(entity);
- // Assert
- Assert.IsTrue(updateResult > 0);
- // Act
- var queryResult = connection.Query<InheritedIdentityTable>(entity.Id).FirstOrDefault();
- // Assert
- Assert.IsNotNull(queryResult);
- Helper.AssertPropertiesEquality(entity, queryResult);
- }
- }
- [TestMethod]
- public void TestSqlConnectionUpdateForInheritedViaPrimaryKey()
- {
- // Setup
- var entity = Helper.CreateInheritedIdentityTable();
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- connection.Insert<InheritedIdentityTable, long>(entity);
- // Setup
- entity.ColumnBit = false;
- entity.ColumnDateTime2 = DateTime.UtcNow;
- // Act
- var updateResult = connection.Update<InheritedIdentityTable>(entity, entity.Id);
- // Assert
- Assert.IsTrue(updateResult > 0);
- // Act
- var queryResult = connection.Query<InheritedIdentityTable>(entity.Id).FirstOrDefault();
- // Assert
- Assert.IsNotNull(queryResult);
- Helper.AssertPropertiesEquality(entity, queryResult);
- }
- }
- #endregion
- #region UpdateAll
- [TestMethod]
- public void TestSqlConnectionUpdateAllForInherited()
- {
- // Setup
- var entities = Helper.CreateInheritedIdentityTables(10);
- using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
- {
- // Act
- connection.InsertAll<InheritedIdentityTable>(entities);
- // Setup
- entities.ForEach(entity =>
- {
- entity.ColumnBit = false;
- entity.ColumnDateTime2 = DateTime.UtcNow;
- });
- // Act
- var updateAllResult = connection.UpdateAll<InheritedIdentityTable>(entities);
- // Assert
- Assert.AreEqual(entities.Count, updateAllResult);
- // Act
- var queryResult = connection.QueryAll<InheritedIdentityTable>();
- // Assert
- Assert.AreEqual(entities.Count, queryResult.Count());
- entities.ForEach(entity =>
- Helper.AssertPropertiesEquality(entity, queryResult.First(e => e.Id == entity.Id)));
- }
- }
- #endregion
- }
- }