コード例 #1
0
        public void ShouldNotCommitUnstartedTransaction()
        {
            // arrange
            var target = new PropertyTransaction( new MockEditableObject() );

            // act

            // assert
            Assert.Throws<InvalidOperationException>( () => target.Commit() );
        }
コード例 #2
0
        public void ShouldCommitChangesToObject()
        {
            // arrange
            var obj = new MockEditableObject();
            var createdDate = obj.CreatedDate;
            var transaction = new PropertyTransaction( obj );

            obj.Id = 1;
            obj.FirstName = string.Empty;
            obj.LastName = string.Empty;

            // act
            transaction.Begin();
            obj.FirstName = "unit";
            obj.LastName = "test";
            transaction.Commit();

            // assert
            Assert.Equal( 1, obj.Id );
            Assert.Equal( "unit", obj.FirstName );
            Assert.Equal( "test", obj.LastName );
            Assert.Equal( createdDate, obj.CreatedDate );
        }