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);
        }
Пример #2
0
        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);
        }