public async Task PostEstado_Created()
        {
            var options = Options;
            var estado  = new Estado()
            {
                EstadoId = Guid.NewGuid(),
                Nome     = "Rio Grande do Sul",
                Sigla    = "RS",
            };

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

                var result = await controller.PostEstado(estado);

                var createdResult = Assert.IsType <CreatedAtActionResult>(result);
                var estadoResult  = Assert.IsType <Estado>(createdResult.Value);
                Assert.Equal(estado, estadoResult);
                Assert.Equal("GetEstado", createdResult.ActionName);
                Assert.Equal(estado.EstadoId, createdResult.RouteValues["id"]);
            }

            using (var context = new CompeticoesDbContext(options))
            {
                var estadoResult = await context.Estados.FirstOrDefaultAsync();

                var jsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(estadoResult);
                var estadoJson = Newtonsoft.Json.JsonConvert.SerializeObject(estado);

                Assert.Equal(estadoJson, jsonResult);
            }
        }
        public async Task PostEstado_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.PostEstado(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]);
            }
        }