예제 #1
0
        public static object HandleDataPacket(DataPacket dataPacket)
        {
            CommandHandler commandHandler = null;

            if (dataPacket.Command is SearchCommand)
            {
                commandHandler = new SearchCommandHandler(dataPacket);
            }

            if (dataPacket.Command is SaveCommand)
            {
                commandHandler = new SaveCommandHandler(dataPacket);
            }

            if (dataPacket.Command is DeleteCommand)
            {
                commandHandler = new DeleteCommandHandler(dataPacket);
            }

            if (dataPacket.Command is UpdateCommand)
            {
                commandHandler = new UpdateCommandHandler(dataPacket);
            }

            return(commandHandler?.HandleCommand());
        }
예제 #2
0
        public async Task HandleShouldReturnFailWhenOutdatedVersion()
        {
            // Arrange
            var id      = Guid.NewGuid();
            var version = 1;

            Optional <string> login     = new Optional <string>("Login");
            Optional <string> password  = new Optional <string>("Password$my");
            Optional <string> firstName = new Optional <string>("FirstName");
            Optional <string> lastName  = new Optional <string>("LastName");

            var fullName         = new FullName(new FirstName(firstName.Value), new LastName(lastName.Value));
            var userFromDatabase = new User(id, new Login("Login"), "Password$my", fullName)
            {
                Version = 2
            };

            var userFinderMock = new Mock <IUserFinder>();

            userFinderMock.Setup(x => x.Get(id)).Returns(Task.FromResult(userFromDatabase));
            var userFinder = userFinderMock.Object;

            var userRepositoryMock = new Mock <IUserRepository>();

            userRepositoryMock.Setup(x => x.Update(It.IsAny <User>())).Returns(Task.CompletedTask);
            var userRepository = userRepositoryMock.Object;

            var versionProviderMock = new Mock <IVersionProvider>();

            versionProviderMock.Setup(x => x.Generate()).Returns(version);
            var versionProvider = versionProviderMock.Object;

            var passwordProviderMock = new Mock <IPasswordProvider>();

            passwordProviderMock.Setup(x => x.Hash(It.IsAny <string>())).Returns("hashedPassword");
            var passwordProvider = passwordProviderMock.Object;

            var publishIntegrationEventsServiceMock = new Mock <IPublishIntegrationEventsService>();

            publishIntegrationEventsServiceMock.Setup(x => x.PublishUserCreated(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(Task.CompletedTask);
            var publishIntegrationEventsService = publishIntegrationEventsServiceMock.Object;

            var command = new UpdateCommand(id,
                                            login,
                                            password,
                                            firstName,
                                            lastName,
                                            version);

            var handler = new UpdateCommandHandler(userFinder, userRepository, versionProvider, passwordProvider, publishIntegrationEventsService);

            // Act
            var result = await handler.Handle(command, CancellationToken.None);

            // Assert
            result.IsFailure.Should().BeTrue();
            result.Failures.Should().OnlyContain(x => x.Code == HandlerFaultCode.NotMet.Name &&
                                                 x.Message == HandlerFailures.NotMet &&
                                                 x.Target == "version");
        }
        public void When_InputIsNull_MapThrowsException()
        {
            UpdateCommand updateCommand = null;

            _target = _fixture.Freeze <UpdateCommandHandler>();
            Assert.ThrowsAsync <ArgumentNullException>(async() =>
                                                       await _target.Handle(updateCommand, default(CancellationToken)));
        }
        public void Handle_GivenInvalidId_ThrowsException()
        {
            var command = new UpdateCommand
            {
                Id       = 99,
                Name     = "asdas",
                Disabled = false
            };

            var sut = new UpdateCommandHandler(Context);

            Should.ThrowAsync <NotFoundException>(() =>
                                                  sut.Handle(command, CancellationToken.None));
        }
        public void When_ContactServiceFails_HandlerThrowsException()
        {
            var command = _fixture.Create <UpdateCommand>();

            _mockContactsService = _fixture.Freeze <Mock <IContactService> >();
            _mockContactsService.Setup(x => x.UpdateContactAsync(It.IsAny <Contact>()))
            .ThrowsAsync(new ArgumentNullException());

            _target = _fixture.Create <UpdateCommandHandler>();

            Assert.ThrowsAsync <ArgumentNullException>(async() =>
                                                       await _target.Handle(command, default(CancellationToken)));

            _mockContactsService.Verify(x => x.UpdateContactAsync(It.IsAny <Contact>()), Times.Once);
        }
        public void When_InputIsValid_HandlerContactSuccessfully()
        {
            var expected = _fixture.Create <bool>();
            var command  = _fixture.Create <UpdateCommand>();

            _mockContactsService = _fixture.Freeze <Mock <IContactService> >();
            _mockContactsService.Setup(x => x.UpdateContactAsync(It.IsAny <Contact>())).ReturnsAsync(expected);
            _target = _fixture.Create <UpdateCommandHandler>();

            var actual = _target.Handle(command, default(CancellationToken));

            Assert.AreEqual(expected, actual.Result);

            _mockContactsService.Verify(x => x.UpdateContactAsync(It.IsAny <Contact>()), Times.Once);
        }
        public void Handle_GivenInvalidId_ThrowsException()
        {
            var command = new UpdateCommand
            {
                Id           = 123,
                Name         = "TShirt",
                SellingPrice = 70,
                Description  = "Description ..",
                CategoryId   = 1,
                Disabled     = true
            };

            var sut = new UpdateCommandHandler(Context);

            Should.ThrowAsync <NotFoundException>(() =>
                                                  sut.Handle(command, CancellationToken.None));
        }
        public async Task Handle_GivenValidId_ShouldUpdatePersistedTodoItem()
        {
            var command = new UpdateCommand
            {
                Id       = 1,
                Name     = "Category 1",
                Disabled = false
            };

            var handler = new UpdateCommandHandler(Context);

            await handler.Handle(command, CancellationToken.None);

            var entity = Context.Categories.Find(command.Id);

            entity.ShouldNotBeNull();
            entity.Name.ShouldBe(command.Name);
        }
        public async Task Handle_GivenValidId_ShouldUpdatePersistedTodoItem()
        {
            var command = new UpdateCommand
            {
                Id           = 1,
                Name         = "TShirt",
                SellingPrice = 70,
                Description  = "Description ..",
                CategoryId   = 1,
                Disabled     = true
            };

            var handler = new UpdateCommandHandler(Context);

            await handler.Handle(command, CancellationToken.None);

            var entity = Context.TodoItems.Find(command.Id);

            entity.ShouldNotBeNull();
            entity.Title.ShouldBe(command.Name);
            entity.Done.ShouldBeTrue();
        }
 public void TearDown()
 {
     _mockContactsService = null;
     _fixture             = null;
     _target = null;
 }