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

            // act

            // assert
            Assert.Throws<InvalidOperationException>( () => target.Rollback() );
        }
コード例 #2
0
        public void ShouldRollbackChangesToObject()
        {
            // arrange
            var obj = new MockEditableObject();
            var createdDate = obj.CreatedDate;
            var transaction = new PropertyTransaction( obj, new[] { "FirstName", "LastName" } );

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

            // act
            transaction.Begin();
            obj.Id = 2;
            obj.FirstName = "unit";
            obj.LastName = "test";
            transaction.Rollback();

            // assert
            Assert.Equal( 2, obj.Id );
            Assert.Equal( string.Empty, obj.FirstName );
            Assert.Equal( string.Empty, obj.LastName );
            Assert.Equal( createdDate, obj.CreatedDate );
        }