コード例 #1
0
        public async Task HandleAsync_Should_Throw_ResourceNotFoundException_When_Flat_For_Rent_Announcement_Preference_Is_Not_Found()
        {
            var command = new DeleteFlatForRentAnnouncementPreferenceCommand(Guid.NewGuid(), Guid.NewGuid());
            var user    = User.Builder()
                          .SetId(command.UserId)
                          .SetEmail("*****@*****.**")
                          .SetServiceActive(DefaultUserSettings.ServiceActive)
                          .SetAnnouncementPreferenceLimit(DefaultUserSettings.AnnouncementPreferenceLimit)
                          .SetAnnouncementSendingFrequency(DefaultUserSettings.AnnouncementSendingFrequency)
                          .Build();
            var getUserResult = GetResult <User> .Ok(user);

            var errors = new Collection <IError>
            {
                new Error(FlatForRentAnnouncementPreferenceErrorCode.NotFound,
                          FlatForRentAnnouncementPreferenceErrorMessage.NotFound)
            };
            var getFlatForRentAnnouncementPreferenceResult = GetResult <FlatForRentAnnouncementPreference> .Fail(errors);

            _userGetterServiceMock.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())).ReturnsAsync(getUserResult);
            _flatForRentAnnouncementPreferenceGetterServiceMock
            .Setup(x => x.GetByByUserAndId(It.IsAny <User>(), It.IsAny <Guid>()))
            .Returns(getFlatForRentAnnouncementPreferenceResult);

            Func <Task> result = async() => await _commandHandler.HandleAsync(command);

            var exceptionResult = await result.Should().ThrowExactlyAsync <ResourceNotFoundException>();

            exceptionResult.And.Errors.Should().BeEquivalentTo(errors);
        }
コード例 #2
0
        public async Task <IActionResult> DeleteFlatForRentAnnouncementPreferenceAsync([FromRoute] Guid id, [FromRoute] Guid flatForRentAnnouncementPreferenceId)
        {
            var authResult = await _authorizationService.AuthorizeAsync(User, id, ResourceOwnerPolicy.ResourceOwnerPolicyName);

            if (!authResult.Succeeded)
            {
                return(CreateErrorResult(HttpStatusCode.Forbidden));
            }

            var deleteFlatForRentAnnouncementPreferenceCommand = new DeleteFlatForRentAnnouncementPreferenceCommand(
                flatForRentAnnouncementPreferenceId, id);
            await _communicationBus.SendCommandAsync(deleteFlatForRentAnnouncementPreferenceCommand);

            Response.Headers.Add(HeaderNameConstants.XCorrelationId, deleteFlatForRentAnnouncementPreferenceCommand.CorrelationId.ToString());
            return(Accepted());
        }
コード例 #3
0
        public async Task HandleAsync_Should_Throw_ResourceNotFoundException_When_User_Is_Not_Found()
        {
            var command = new DeleteFlatForRentAnnouncementPreferenceCommand(Guid.NewGuid(), Guid.NewGuid());
            var errors  = new List <IError>
            {
                new Error(UserErrorCodeEnumeration.NotFound, UserErrorMessage.NotFound)
            };
            var getUserResult = GetResult <User> .Fail(errors);

            _userGetterServiceMock.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())).ReturnsAsync(getUserResult);

            Func <Task> result = async() => await _commandHandler.HandleAsync(command);

            var exceptionResult = await result.Should().ThrowExactlyAsync <ResourceNotFoundException>();

            exceptionResult.And.Errors.Should().BeEquivalentTo(errors);
        }
コード例 #4
0
        public async Task HandleAsync_Should_Delete_Flat_For_Rent_Announcement_Preference()
        {
            var command = new DeleteFlatForRentAnnouncementPreferenceCommand(Guid.NewGuid(), Guid.NewGuid());
            var user    = User.Builder()
                          .SetId(command.UserId)
                          .SetEmail("*****@*****.**")
                          .SetServiceActive(DefaultUserSettings.ServiceActive)
                          .SetAnnouncementPreferenceLimit(DefaultUserSettings.AnnouncementPreferenceLimit)
                          .SetAnnouncementSendingFrequency(DefaultUserSettings.AnnouncementSendingFrequency)
                          .Build();
            var getUserResult = GetResult <User> .Ok(user);

            var flatForRentAnnouncementPreference = FlatForRentAnnouncementPreference.Builder()
                                                    .SetId(command.FlatForRentAnnouncementPreferenceId)
                                                    .SetCityId(Guid.NewGuid())
                                                    .SetPriceMin(1)
                                                    .SetPriceMax(1000)
                                                    .SetRoomNumbersMin(1)
                                                    .SetRoomNumbersMax(1)
                                                    .SetCityDistricts(new List <Guid> {
                Guid.NewGuid()
            })
                                                    .Build();
            var getFlatForRentAnnouncementPreferenceResult =
                GetResult <FlatForRentAnnouncementPreference> .Ok(flatForRentAnnouncementPreference);

            _userGetterServiceMock.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())).ReturnsAsync(getUserResult);
            _flatForRentAnnouncementPreferenceGetterServiceMock
            .Setup(x => x.GetByByUserAndId(It.IsAny <User>(), It.IsAny <Guid>()))
            .Returns(getFlatForRentAnnouncementPreferenceResult);
            _communicationBusMock
            .Setup(x => x.DispatchDomainEventsAsync(It.IsAny <User>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);
            _userRepositoryMock.Setup(x => x.UpdateAsync(It.IsAny <User>())).Returns(Task.CompletedTask);
            _integrationEventBusMock.Setup(x => x.PublishIntegrationEventAsync(It.IsAny <IIntegrationEvent>()))
            .Returns(Task.CompletedTask);

            Func <Task> result = async() => await _commandHandler.HandleAsync(command);

            await result.Should().NotThrowAsync <Exception>();
        }