public void ForwardsTheCallToTheDecoratee() { // Arrange var decoratee = new SpyCommandService <object>(); AuditingCommandServiceDecorator <object> sut = CreateAuditingDecorator(decoratee: decoratee); // Act sut.Execute(command: new object()); // Assert Assert.True(decoratee.ExecutedOnce); }
public void ExecuteWillSaveChangesAfterInvokingTheDecoratee() { // Arrange var context = new SpyCommerceContext(); var decoratee = new SpyCommandService <object>(); var sut = new SaveChangesCommandServiceDecorator <object>(context, decoratee); decoratee.Executed += () => { // Decoratee should be invoked before changes are saved Assert.False(context.HasChangedSaved); }; // Act sut.Execute(command: new object()); // Assert Assert.True(context.HasChangedSaved); Assert.True(decoratee.ExecutedOnce); }