public void TestSqlConnectionMergeForImmutableWithFewerCtorArgumentsWithNonEmptyTable() { // Setup var entity = Helper.CreateIdentityTable(); using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb)) { // Act var insertResult = connection.Insert <IdentityTable, long>(entity); // Setup var newEntity = new ImmutableWithFewerCtorArgumentsIdentityTable(insertResult, entity.RowGuid, false, entity.ColumnDateTime, DateTime.UtcNow) { ColumnDecimal = entity.ColumnDecimal, ColumnFloat = entity.ColumnFloat, ColumnInt = entity.ColumnInt, ColumnNVarChar = entity.ColumnNVarChar }; // Act var mergeResult = connection.Merge <ImmutableWithFewerCtorArgumentsIdentityTable, long>(newEntity); // The ID could not be set back to the entities, so it should be 0 // Assert Assert.IsTrue(mergeResult > 0); Assert.AreEqual(insertResult, mergeResult); // Act var queryResult = connection.Query <ImmutableWithFewerCtorArgumentsIdentityTable>(newEntity.Id).FirstOrDefault(); // Assert Helper.AssertPropertiesEquality(newEntity, queryResult); } }
public void TestSqlConnectionUpdateForImmutableWithFewerCtorArgumentsViaPrimaryKey() { // Setup var entity = Helper.CreateIdentityTable(); using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb)) { // Act connection.Insert <IdentityTable>(entity); // Setup var newEntity = new ImmutableWithFewerCtorArgumentsIdentityTable(entity.Id, entity.RowGuid, false, entity.ColumnDateTime, DateTime.UtcNow) { ColumnDecimal = entity.ColumnDecimal, ColumnFloat = entity.ColumnFloat, ColumnInt = entity.ColumnInt, ColumnNVarChar = entity.ColumnNVarChar }; // Act var updateResult = connection.Update <ImmutableWithFewerCtorArgumentsIdentityTable>(newEntity, newEntity.Id); // Assert Assert.IsTrue(updateResult > 0); // Act var queryResult = connection.Query <IdentityTable>(newEntity.Id).FirstOrDefault(); // Assert Assert.IsNotNull(queryResult); Helper.AssertPropertiesEquality(newEntity, queryResult); } }