public async Task Should_Get_A_Rocket() { 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 ServiceProvider.WithScoped <IMediator>().Invoke( mediator => mediator.Send(new GetRocket.Request { Id = rocket }) ); response.Type.Should().Be(RocketType.Falcon9); response.Sn.Should().Be("12345678901234"); }
public async Task Should_Patch_A_Rocket() { 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 request = new EditRocket.PatchRequest { Id = rocket.Id, // Type = RocketType.FalconHeavy, SerialNumber = string.Join("", rocket.SerialNumber.Reverse()) }.ResetChanges() with { Type = RocketType.FalconHeavy }; var response = await ServiceProvider.WithScoped <IMediator>().Invoke( mediator => mediator.Send(request) ); response.Type.Should().Be(RocketType.FalconHeavy); response.Sn.Should().Be("12345678901234"); }
public async Task Should_Create_A_LaunchRecord() { var client = new LaunchRecordClient(Factory.CreateClient()); var clock = ServiceProvider.GetRequiredService <IClock>(); 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 response = await client.CreateLaunchRecordAsync( new CreateLaunchRecordRequest { Partner = "partner", Payload = "geo-fence-ftl", RocketId = rocket.Id.Value, ScheduledLaunchDate = clock.GetCurrentInstant().ToDateTimeOffset(), PayloadWeightKg = 100, } ); response.Result.Id.Should().NotBeEmpty(); }
public async Task Should_Get_A_Rocket() { var client = Factory.Services.GetRequiredService <IRocketClient>(); var rocket = await ServiceProvider.WithScoped <RocketDbContext>() .Invoke( async z => { var rocket = new ReadyRocket { Type = CoreRocketType.Falcon9, SerialNumber = "12345678901234" }; z.Add(rocket); await z.SaveChangesAsync(); return(rocket.Id); } ); var response = await client.GetRocket.ExecuteAsync(rocket.Value); response.EnsureNoErrors(); response.Data !.Rockets !.Nodes[0].Type.Should().Be(RocketType.Falcon9); response.Data.Rockets !.Nodes[0].SerialNumber.Should().Be("12345678901234"); }
public async Task Should_Get_A_LaunchRecord() { var client = Factory.Services.GetRequiredService <IRocketClient>(); var record = await ServiceProvider.WithScoped <RocketDbContext, IClock>() .Invoke( async(context, clock) => { var rocket = new ReadyRocket { Id = RocketId.New(), Type = CoreRocketType.Falcon9, SerialNumber = "12345678901234" }; var record = new LaunchRecord { Partner = "partner", Payload = "geo-fence-ftl", RocketId = rocket.Id, ScheduledLaunchDate = clock.GetCurrentInstant().ToDateTimeOffset(), PayloadWeightKg = 100, }; context.Add(rocket); context.Add(record); await context.SaveChangesAsync(); return(record); } ); var response = await client.GetLaunchRecord.ExecuteAsync(record.Id.Value); response.EnsureNoErrors(); response.Data !.LaunchRecords !.Nodes ![0].Partner.Should().Be("partner");
public async Task Should_Patch_A_Rocket_SerialNumber() { var client = new RocketClient(Factory.CreateClient()); var rocket = await ServiceProvider.WithScoped <RocketDbContext>() .Invoke( async z => { var rocket = new ReadyRocket { Type = RocketType.AtlasV, SerialNumber = "12345678901234" }; z.Add(rocket); await z.SaveChangesAsync(); return(rocket); } ); var u = await client.PatchRocketAsync( rocket.Id.Value, new EditRocketPatchRequest { SerialNumber = new() { Value = "123456789012345" } }
public async Task Should_Create_A_LaunchRecord() { var rocket = await ServiceProvider.WithScoped <RocketDbContext>() .Invoke( async(context, ct) => { var rocket = new ReadyRocket { Type = RocketType.Falcon9, SerialNumber = "12345678901234" }; context.Add(rocket); await context.SaveChangesAsync(ct); return(rocket); } ); var response = await ServiceProvider.WithScoped <IMediator, IClock>().Invoke( async(mediator, clock, ct) => await mediator.Send( new CreateLaunchRecord.Request { Partner = "partner", Payload = "geo-fence-ftl", RocketId = rocket.Id, ScheduledLaunchDate = clock.GetCurrentInstant(), PayloadWeightKg = 100, }, ct ) ); response.Id.Value.Should().NotBeEmpty(); }
public async Task Should_Update_A_LaunchRecord() { var client = new LR.LaunchRecordsClient(Factory.CreateGrpcChannel()); var clock = ServiceProvider.GetRequiredService <IClock>(); var record = await ServiceProvider.WithScoped <RocketDbContext, IClock>() .Invoke( async(context, clk) => { var rocket = new ReadyRocket { Id = RocketId.New(), Type = Core.Domain.RocketType.Falcon9, SerialNumber = "12345678901234" }; context.Add(rocket); var record = new LaunchRecord { Partner = "partner", Payload = "geo-fence-ftl", RocketId = rocket.Id, Rocket = rocket, ScheduledLaunchDate = clk.GetCurrentInstant().ToDateTimeOffset(), PayloadWeightKg = 100, }; context.Add(record); await context.SaveChangesAsync(); return(record); } ); var launchDate = record.ScheduledLaunchDate.AddSeconds(1).ToTimestamp(); await client.EditLaunchRecordAsync( new UpdateLaunchRecordRequest { Id = record.Id.ToString(), Partner = "partner", Payload = "geo-fence-ftl", RocketId = record.RocketId.ToString(), ScheduledLaunchDate = launchDate, PayloadWeightKg = 200, } ); var response = await client.GetLaunchRecordsAsync(new GetLaunchRecordRequest { Id = record.Id.ToString() }); response.ScheduledLaunchDate.Should().Be(launchDate); response.PayloadWeightKg.Should().Be(200); }
public async Task Should_Update_A_LaunchRecord() { var record = await ServiceProvider.WithScoped <RocketDbContext, IClock>() .Invoke( async(context, clock) => { var rocket = new ReadyRocket { Id = RocketId.New(), Type = RocketType.Falcon9, SerialNumber = "12345678901234" }; var record = new LaunchRecord { Partner = "partner", Payload = "geo-fence-ftl", RocketId = rocket.Id, ScheduledLaunchDate = clock.GetCurrentInstant().ToDateTimeOffset(), PayloadWeightKg = 100, }; context.Add(rocket); context.Add(record); await context.SaveChangesAsync(); return(record); } ); var launchDate = record.ScheduledLaunchDate.ToInstant().Plus(Duration.FromSeconds(1)); var response = await ServiceProvider.WithScoped <IMediator, IClock>().Invoke( (mediator, clock) => mediator.Send( new EditLaunchRecord.Request { Id = record.Id, Partner = "partner", Payload = "geo-fence-ftl", RocketId = record.RocketId, ScheduledLaunchDate = launchDate, PayloadWeightKg = 200, } ) ); response.ScheduledLaunchDate.Should().Be(launchDate); response.PayloadWeightKg.Should().Be(200); }
public async Task Should_Get_A_LaunchRecord() { var client = new LaunchRecordClient(Factory.CreateClient()); var record = await ServiceProvider.WithScoped <RocketDbContext, IClock>() .Invoke( async(context, clock) => { var rocket = new ReadyRocket { Id = RocketId.New(), Type = RocketType.Falcon9, SerialNumber = "12345678901234" }; var record = new LaunchRecord { Partner = "partner", Payload = "geo-fence-ftl", RocketId = rocket.Id, ScheduledLaunchDate = clock.GetCurrentInstant().ToDateTimeOffset(), PayloadWeightKg = 100, }; context.Add(rocket); context.Add(record); await context.SaveChangesAsync(); return(record); } ); var response = (await client.GetLaunchRecordAsync(record.Id.Value)).Result; response.Partner.Should().Be("partner"); response.Payload.Should().Be("geo-fence-ftl"); response.RocketType.Should().Be(HttpRocketType.Falcon9); response.RocketSerialNumber.Should().Be("12345678901234"); response.ScheduledLaunchDate.Should().Be(record.ScheduledLaunchDate); }
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"); }