コード例 #1
0
        public void ShouldUpdateDatabaseAndPublishUpdatedEventOnHandleUpdateSomeDataCommand()
        {
            var updateSomeDataCommand = BuildUpdateSomeDataCommand();

            _eventBusMock.Setup(x => x.Publish(It.IsAny <SomeDataUpdatedEvent>()))
            .Callback <SomeDataUpdatedEvent>(@event =>
            {
                Assert.Equal(@event.SomeDataId, updateSomeDataCommand.SomeDataId);
                Assert.Equal(@event.Color, updateSomeDataCommand.Color);
                Assert.Equal(@event.CreationDate, updateSomeDataCommand.CreationDate);
                Assert.Equal(@event.FacebookUrl, updateSomeDataCommand.FacebookUrl);
                Assert.Equal(@event.FirstName, updateSomeDataCommand.FirstName);
                Assert.Equal(@event.LastName, updateSomeDataCommand.LastName);
                Assert.Equal(@event.MiddleName, updateSomeDataCommand.MiddleName);
                Assert.Equal(@event.Title, updateSomeDataCommand.Title);
            });

            _someDataWriteRepositoryMock.Setup(x => x.Get(updateSomeDataCommand.SomeDataId, _dbContextMock.Object))
            .Returns(BuildSomeAggregate(updateSomeDataCommand.SomeDataId));

            var commandHandler = new SomeDataCommandHandler(_eventBusMock.Object, _dbContextMock.Object, _someDataWriteRepositoryMock.Object, _businessUserRepositoryMock.Object);

            commandHandler.Handle(updateSomeDataCommand, new CancellationToken());

            _eventBusMock.Verify(x => x.Publish(It.IsAny <SomeDataUpdatedEvent>()), Times.Once);
            _someDataWriteRepositoryMock.Verify(x => x.Get(updateSomeDataCommand.SomeDataId, _dbContextMock.Object));
            _someDataWriteRepositoryMock.Verify(x => x.Save(It.IsAny <SomeAggregate>(), _dbContextMock.Object),
                                                Times.Once);
        }
コード例 #2
0
        public void ShouldSaveToDatabaseAndPublishCreatedEventOnHandleCreateSomeDataCommand()
        {
            var createCardCommmand = BuildCreateSomeDataCommand(new ApplicationUserId(_businessUser.IdentityId));

            _eventBusMock.Setup(x => x.Publish(It.IsAny <SomeDataCreatedEvent>()))
            .Callback <INotification>(r =>
            {
                var x = (SomeDataCreatedEvent)r;
                Assert.Equal(createCardCommmand.FirstName, x.FirstName);
                Assert.Equal(createCardCommmand.MiddleName, x.MiddleName);
                Assert.Equal(createCardCommmand.LastName, x.LastName);
                Assert.Equal(createCardCommmand.Title, x.Title);
                Assert.Equal(createCardCommmand.CreationDate, x.CreationDate);
            });

            _businessUserRepositoryMock
            .Setup(x => x.GetByApplicationUserId(createCardCommmand.ApplicationUserId, _dbContextMock.Object))
            .Returns(_businessUser);

            var commandHandler = new SomeDataCommandHandler(_eventBusMock.Object, _dbContextMock.Object, _someDataWriteRepositoryMock.Object, _businessUserRepositoryMock.Object);

            ((IRequestHandler <CreateSomeDataCommand, Unit>)commandHandler).Handle(createCardCommmand, It.IsAny <CancellationToken>());

            _eventBusMock.Verify(x => x.Publish(It.IsAny <SomeDataCreatedEvent>()), Times.Once());
            _businessUserRepositoryMock.Verify(x => x.GetByApplicationUserId(createCardCommmand.ApplicationUserId, _dbContextMock.Object), Times.Once);
            _someDataWriteRepositoryMock.Verify(x => x.Create(It.IsAny <SomeAggregate>(), _dbContextMock.Object), Times.Once);
        }
コード例 #3
0
        public void ShouldRemoveFromDatabaseAndPublishDeletedEventOnHandleDeleteSomeDataCommand()
        {
            var deleteSomeDataCommand = BuildDeleteSomeDataCommand();

            _eventBusMock.Setup(x => x.Publish(It.IsAny <SomeDataDeletedEvent>()))
            .Callback <SomeDataDeletedEvent>(@event =>
            {
                Assert.Equal(@event.SomeDataId, deleteSomeDataCommand.Id);
            });

            var commandHandler = new SomeDataCommandHandler(_eventBusMock.Object, _dbContextMock.Object, _someDataWriteRepositoryMock.Object, _businessUserRepositoryMock.Object);

            commandHandler.Handle(deleteSomeDataCommand, new CancellationToken());

            _eventBusMock.Verify(x => x.Publish(It.IsAny <SomeDataDeletedEvent>()), Times.Once);
            _someDataWriteRepositoryMock.Verify(x => x.Get(deleteSomeDataCommand.Id, _dbContextMock.Object));
            _someDataWriteRepositoryMock.Verify(x => x.Delete(It.IsAny <SomeAggregate>(), _dbContextMock.Object),
                                                Times.Once);
        }