public void ChangeBlocking_ThrowsUserRepositoryException_When_RepositoryReturnUnexpectedResponse()
        {
            this.UserRepository
            .Setup(v => v.ChangeBlockingAsync(It.IsAny <IdSrvUserBlockDto>()))
            .ReturnsAsync(this.UnexpectedRepositoryResponse);
            var controller = new UserController(this.UserRepository.Object);
            var blockDto   = new IdSrvUserBlockDto();

            Assert.ThrowsAsync <UserRepositoryException>(() => controller.ChangeBlocking(blockDto));
        }
        public async Task ChangeBlocking_InvokeChangeBlockingAsyncFromRepository_With_PassedBlock()
        {
            this.UserRepository
            .Setup(v => v.ChangeBlockingAsync(It.IsAny <IdSrvUserBlockDto>()))
            .ReturnsAsync(RepositoryResponse.Success);
            var controller = new UserController(this.UserRepository.Object);
            var blockDto   = new IdSrvUserBlockDto();
            IHttpActionResult httpResult = await controller.ChangeBlocking(blockDto);

            this.UserRepository.Verify(v => v.ChangeBlockingAsync(blockDto));
        }
        public async Task ChangeBlocking_ReturnNotFound_When_RepositoryReturnNotFound()
        {
            this.UserRepository
            .Setup(v => v.ChangeBlockingAsync(It.IsAny <IdSrvUserBlockDto>()))
            .ReturnsAsync(RepositoryResponse.NotFound);
            var controller = new UserController(this.UserRepository.Object);
            var blockDto   = new IdSrvUserBlockDto();
            IHttpActionResult httpResult = await controller.ChangeBlocking(blockDto);

            Assert.NotNull(httpResult);
            Assert.IsInstanceOf <NotFoundResult>(httpResult);
        }
        public async Task <IHttpActionResult> ChangeBlocking(IdSrvUserBlockDto block)
        {
            if (block == null)
            {
                return(this.BadRequest());
            }

            RepositoryResponse response = await this.UserRepository.ChangeBlockingAsync(block);

            return
                (response == RepositoryResponse.Success ? this.Ok() :
                 response == RepositoryResponse.NotFound ? this.NotFound() as IHttpActionResult :
                 throw new UserRepositoryException());
        }
Exemple #5
0
        public async Task Unblock_CallServiceChangeBlock()
        {
            var userId = new Guid();
            IdSrvUserBlockDto block = null;

            this.UserServiceMock
            .Setup(v => v.ChangeBlock(It.IsAny <IdSrvUserBlockDto>()))
            .ReturnsAsync(true)
            .Callback <IdSrvUserBlockDto>(r => block = r);
            var controller = new UsersController(this.UserServiceMock.Object);
            await controller.Unblock(userId);

            Assert.NotNull(block);
            Assert.AreEqual(userId, block.Id);
            Assert.IsFalse(block.IsBlocked);
        }
Exemple #6
0
        /// <inheritdoc/>
        public async Task <RepositoryResponse> ChangeBlockingAsync(IdSrvUserBlockDto block)
        {
            if (block == null)
            {
                throw new ArgumentNullException(nameof(block));
            }

            using (IDbConnection connection = await this.GetConnection())
            {
                var compiler = new SqlServerCompiler();
                var db       = new QueryFactory(connection, compiler);
                int updated  = await db
                               .Query("Users")
                               .Where(new { Id = block.Id })
                               .UpdateAsync(new { block.IsBlocked });

                return(updated == 1 ? RepositoryResponse.Success : RepositoryResponse.NotFound);
            }
        }
Exemple #7
0
 /// <inheritdoc/>
 /// <remarks>
 /// В случае ошибки подключения к WebApi возникнет системное исключение,
 /// внутри метода оно никак не перехватывается. Метод может вернуть false только
 /// в случае успешного подключения (когда ответ WebApi интепретируется как ошибка).
 /// </remarks>
 public async Task <bool> ChangeBlock(IdSrvUserBlockDto block)
 {
     return(await RestApiHelpers.CallBoolApi(() => this.RestClient.ChangeBlockingAsync(block)));
 }