public void ShouldNotCommitUnstartedTransaction() { // arrange var target = new PropertyTransaction( new MockEditableObject() ); // act // assert Assert.Throws<InvalidOperationException>( () => target.Commit() ); }
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 ); }