public async Task <BreakfastItem> Post([FromBody] CreateOrUpdateBreakfastItemRequest request) { var item = new BreakfastItem { Name = request.Name, Rating = request.Rating }; await _context.BreakfastItems.AddAsync(item); await _context.SaveChangesAsync(); return(item); }
public async Task When_adding() { using var fixture = await MongoTestFixture.NewAsync(_output); var entity = new BreakfastItem { Name = "Eggs" }; await fixture.Repository.AddAsync(entity); var added = await fixture.Repository.GetAsync(entity.Id); added.Should().BeEquivalentTo(entity); }
public async Task When_replacing() { using var fixture = await MongoTestFixture.NewAsync(_output); var entity = new BreakfastItem { Id = BreakfastItemEntityConfiguration.Seed.Id, Name = "Eggs" }; var result = await fixture.Repository.ReplaceAsync(entity); var replaced = await fixture.Repository.GetAsync(BreakfastItemEntityConfiguration.Seed.Id); result.Should().BeEquivalentTo(entity); replaced.Should().BeEquivalentTo(entity); }
public async Task When_patching_breakfast_item() { var fixture = new MvcFunctionalTestFixture <Startup>(_output); var item = fixture.Create <BreakfastItem>(); var request = fixture.AutoFixture.Build <CreateOrUpdateBreakfastItemRequest>() .Without(x => x.Rating) // do not patch rating. .Create(); var expected = new BreakfastItem { Id = item.Id, Rating = item.Rating, Name = request.Name // only name should have changed. }; await fixture.HavingConfiguredApiClient() .HavingDatabaseWithBreakfastItems(item) .WhenPatching(EntityNames.BreakfastItem, item.Id, request) .ShouldReturnSuccessfulStatus() .ShouldReturnBreakfastItem(expected) .BreakfastItemShouldExistInDatabase(expected) .RunAsync(); }
/// <summary> /// Configures the mock breakfast item repository to return a relevant breakfast item /// when called with the specified breakfast item type. /// </summary> public static ITestFixture HavingBreakfastItem(this ITestFixture fixture, BreakfastItemType type, out BreakfastItem item) => fixture.HavingMockedAsync <IBreakfastItemRepository, BreakfastItem>(x => x.GetBreakfastItemAsync(type), out item, (f, m) => { m.Type = type; m.Name = type.ToString(); });
public static IMvcFunctionalTestFixture HavingDatabaseWithSingleBreakfastItem(this IMvcFunctionalTestFixture fixture, out BreakfastItem item) { item = fixture.Create <BreakfastItem>(); return(fixture.HavingDatabaseWithBreakfastItems(item)); }
public static IMvcFunctionalTestFixture BreakfastItemShouldExistInDatabase(this IMvcFunctionalTestFixture fixture, BreakfastItem expected) => fixture.ShouldExistInDatabase <BreakfastContext, BreakfastItem>(expected.Id, existing => existing.Id.Should().Be(expected.Id), existing => existing.Name.Should().Be(expected.Name), existing => existing.Rating.Should().Be(expected.Rating));
public static IMvcFunctionalTestFixture ShouldReturnBreakfastItem(this IMvcFunctionalTestFixture fixture, BreakfastItem expected) => fixture.ShouldReturnJson <BreakfastItem>(r => r.Id.Should().Be(expected.Id), r => r.Name.Should().Be(expected.Name), r => r.Rating.Should().Be(expected.Rating));