示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }