예제 #1
0
    public async Task Should_Not_Be_Authorized_On_Given_Record()
    {
        var id     = new LaunchRecordId(new Guid("bad361de-a6d5-425a-9cf6-f9b2dd236be6"));
        var client = new LaunchRecordClient(Factory.CreateClient());
        await ServiceProvider.WithScoped <RocketDbContext>()
        .Invoke(
            async z =>
        {
            var faker  = new RocketFaker();
            var rocket = faker.Generate();
            var record = new LaunchRecordFaker(new[] { rocket }.ToList()).Generate();
            z.Add(rocket);
            record.Id = id;
            z.Add(record);

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


        Func <Task> action = () => client.DeleteLaunchRecordAsync(id.Value);
        await action.Should().ThrowAsync <ApiException <ProblemDetails> >()
        .Where(z => z.StatusCode == 403 && z.Result.Status == 403 && z.Result.Title == "Forbidden");
    }
예제 #2
0
    public async Task Should_Not_Be_Authorized_On_Given_Record()
    {
        var id = new LaunchRecordId(new Guid("bad361de-a6d5-425a-9cf6-f9b2dd236be6"));
        await ServiceProvider.WithScoped <RocketDbContext>()
        .Invoke(
            async z =>
        {
            var faker  = new RocketFaker();
            var rocket = faker.Generate();
            var record = new LaunchRecordFaker(new[] { rocket }.ToList()).Generate();
            z.Add(rocket);
            record.Id = id;
            z.Add(record);

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

        Func <Task> action = () => ServiceProvider.WithScoped <IMediator>().Invoke(
            mediator => mediator.Send(new DeleteLaunchRecord.Request {
            Id = id
        })
            );
        await action.Should().ThrowAsync <NotAuthorizedException>();
    }
    public async Task Should_Not_Get_A_Missing_Launch_Record()
    {
        Func <Task> action = () => ServiceProvider.WithScoped <IMediator>().Invoke(
            mediator => mediator.Send(new GetLaunchRecord.Request {
            Id = LaunchRecordId.New()
        })
            );

        await action.Should().ThrowAsync <NotFoundException>();
    }
예제 #4
0
        private async Task <LaunchRecord> GetLaunchRecord(LaunchRecordId id, CancellationToken cancellationToken)
        {
            var rocket = await _dbContext.LaunchRecords
                         .Include(z => z.Rocket)
                         .FirstOrDefaultAsync(z => z.Id == id, cancellationToken)
                         .ConfigureAwait(false);

            if (rocket == null)
            {
                throw new NotFoundException();
            }

            return(rocket);
        }
 // ReSharper disable once RouteTemplates.ParameterTypeAndConstraintsMismatch
 public partial Task <ActionResult> PatchLaunchRecord([BindRequired][FromRoute] LaunchRecordId id, EditLaunchRecord.PatchRequest model);