public async Task PutEstado_NoContet()
        {
            var options = Options;

            var estado = await AdicionarEstado(options);

            using (var context = new CompeticoesDbContext(options))
            {
                estado.Nome = "Santa Catarina";
                var controller = new EstadosController(context);

                var result = await controller.PutEstado(estado.EstadoId, estado);

                var noContentResult = Assert.IsType <NoContentResult>(result);
                Assert.Equal(204, noContentResult.StatusCode);
            }

            using (var context = new CompeticoesDbContext(options))
            {
                var controller = new EstadosController(context);
                var result     = await controller.GetEstado(estado.EstadoId);

                var okResult     = Assert.IsType <OkObjectResult>(result);
                var estadoResult = Assert.IsType <Estado>(okResult.Value);
                Assert.Equal(estado.EstadoId, estadoResult.EstadoId);
                Assert.Equal(estado.Nome, estadoResult.Nome);
            }
        }
        public async Task PutEstado_BadRequest_Id_Diferente()
        {
            var options = Options;

            using (var context = new CompeticoesDbContext(options))
            {
                var controller = new EstadosController(context);

                var result = await controller.PutEstado(Guid.NewGuid(), new Estado());

                var badRequestResult = Assert.IsType <BadRequestResult>(result);
                Assert.Equal(400, badRequestResult.StatusCode);
            }
        }
        public async Task PutEstado_BadRequest_ModelState_Invalid()
        {
            var options = Options;

            using (var context = new CompeticoesDbContext(options))
            {
                var controller = new EstadosController(context);

                controller.ModelState.AddModelError("key", "error");

                var result = await controller.PutEstado(Guid.NewGuid(), new Estado());

                var badRequestResult = Assert.IsType <BadRequestObjectResult>(result);
                var valueResult      = Assert.IsType <SerializableError>(badRequestResult.Value);
                var value            = Assert.IsType <string[]>(valueResult["key"]);
                Assert.Equal("error", value[0]);
            }
        }
        public async Task PutEstado_ConcurrencyException_NotExists_NotFound()
        {
            var options = Options;

            var estado = await AdicionarEstado(options);

            using (var context = new CompeticoesDbContext(options))
            {
                context.Estados.Remove(estado);
                await context.SaveChangesAsync();
            }

            using (var context = new CompeticoesDbContext(options))
            {
                estado.Nome = "Santa Catarina";
                var controller = new EstadosController(context);

                var result = await controller.PutEstado(estado.EstadoId, estado);

                Assert.IsType <NotFoundResult>(result);
            }
        }