public async Task Should_Not_Get_A_Missing_Rocket()
    {
        var client = new RocketClient(Factory.CreateClient());

        Func <Task> action = () => client.GetRocketAsync(Guid.NewGuid());
        await action.Should().ThrowAsync <ApiException <ProblemDetails> >()
        .Where(
            z => z.StatusCode == 404 && z.Result.Status == 404 && z.Result.Title == "Not Found"
            );
    }
    public async Task Should_Update_A_Rocket()
    {
        var client = new RocketClient(Factory.CreateClient());

        var rocket = await ServiceProvider.WithScoped <RocketDbContext>()
                     .Invoke(
            async z =>
        {
            var rocket = new ReadyRocket
            {
                Type         = RocketType.Falcon9,
                SerialNumber = "12345678901234"
            };
            z.Add(rocket);

            await z.SaveChangesAsync();
            return(rocket);
        }
            );

        var u = await client.EditRocketAsync(
            rocket.Id.Value,
            new EditRocketRequest
        {
            Type         = ClientRocketType.FalconHeavy,
            SerialNumber = string.Join("", rocket.SerialNumber.Reverse())
        }
            );

        (u.StatusCode is >= 200 and < 300).Should().BeTrue();

        var response = await client.GetRocketAsync(rocket.Id.Value);

        response.Result.Type.Should().Be(ClientRocketType.FalconHeavy);
        response.Result.Sn.Should().Be("43210987654321");
    }
    public async Task Should_Get_A_Rocket()
    {
        var client = new RocketClient(Factory.CreateClient());
        var rocket = await ServiceProvider.WithScoped <RocketDbContext>()
                     .Invoke(
            async z =>
        {
            var rocket = new ReadyRocket
            {
                Type         = RocketType.Falcon9,
                SerialNumber = "12345678901234"
            };
            z.Add(rocket);

            await z.SaveChangesAsync();
            return(rocket.Id);
        }
            );

        var response = await client.GetRocketAsync(rocket.Value);

        response.Result.Type.Should().Be(HttpRocketType.Falcon9);
        response.Result.Sn.Should().Be("12345678901234");
    }