Ejemplo n.º 1
0
        public void ChangeBlocking_ThrowsClientRepositoryException_When_RepositoryReturnUnexpectedResponse()
        {
            this.ClientRepository
            .Setup(v => v.ChangeBlockingAsync(It.IsAny <IdSrvClientBlockDto>()))
            .ReturnsAsync(this.UnexpectedRepositoryResponse);
            var controller = new ClientController(this.ClientRepository.Object);
            var blockDto   = new IdSrvClientBlockDto();

            Assert.ThrowsAsync <ClientRepositoryException>(() => controller.ChangeBlocking(blockDto));
        }
Ejemplo n.º 2
0
        public async Task ChangeBlocking_InvokeChangeBlockingAsyncFromRepository_With_PassedBlock()
        {
            this.ClientRepository
            .Setup(v => v.ChangeBlockingAsync(It.IsAny <IdSrvClientBlockDto>()))
            .ReturnsAsync(RepositoryResponse.Success);
            var controller = new ClientController(this.ClientRepository.Object);
            var blockDto   = new IdSrvClientBlockDto();
            IHttpActionResult httpResult = await controller.ChangeBlocking(blockDto);

            this.ClientRepository.Verify(v => v.ChangeBlockingAsync(blockDto));
        }
Ejemplo n.º 3
0
        public async Task ChangeBlocking_ReturnNotFound_When_RepositoryReturnNotFound()
        {
            this.ClientRepository
            .Setup(v => v.ChangeBlockingAsync(It.IsAny <IdSrvClientBlockDto>()))
            .ReturnsAsync(RepositoryResponse.NotFound);
            var controller = new ClientController(this.ClientRepository.Object);
            var blockDto   = new IdSrvClientBlockDto();
            IHttpActionResult httpResult = await controller.ChangeBlocking(blockDto);

            Assert.NotNull(httpResult);
            Assert.IsInstanceOf <NotFoundResult>(httpResult);
        }
Ejemplo n.º 4
0
        public async Task <IHttpActionResult> ChangeBlocking(IdSrvClientBlockDto block)
        {
            if (block == null)
            {
                return(this.BadRequest());
            }

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

            return
                (response == RepositoryResponse.Success ? this.Ok() :
                 response == RepositoryResponse.NotFound ? this.NotFound() as IHttpActionResult :
                 throw new ClientRepositoryException());
        }
Ejemplo n.º 5
0
        public async Task Unblock_CallServiceChangeBlock()
        {
            var clientId = Guid.NewGuid();
            IdSrvClientBlockDto block = null;

            this.ClientServiceMock
            .Setup(v => v.ChangeBlock(It.IsAny <IdSrvClientBlockDto>()))
            .ReturnsAsync(true)
            .Callback <IdSrvClientBlockDto>(r => block = r);
            var controller = new ClientsController(this.ClientServiceMock.Object);
            await controller.Unblock(clientId);

            Assert.NotNull(block);
            Assert.AreEqual(clientId, block.Id);
            Assert.IsFalse(block.IsBlocked);
        }
Ejemplo n.º 6
0
        /// <inheritdoc/>
        public async Task <RepositoryResponse> ChangeBlockingAsync(IdSrvClientBlockDto 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("Clients").Where(new { block.Id }).UpdateAsync(block);

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