public async Task Given_AValidPurchase_When_TryToInsert_Then_IsInsertedWithSuccess() { // arrange var dbContextOptions = new DbContextOptionsBuilder <CryptoBasketContext>() .UseInMemoryDatabase(databaseName: "InsertTestDatabase") .Options; var product = new Product( 123456, "My Coin", "MCN", 245.45D); Purchase purchase = new Purchase(product, quantity: 2); // act using (var context = new CryptoBasketContext(dbContextOptions)) { var repository = new PurchaseRepository(context); await repository.SaveAsync(purchase); } // assert using (var context = new CryptoBasketContext(dbContextOptions)) { Assert.Equal(1, context.Purchase.Count()); Assert.NotNull(context.Purchase.Single()); var purchaseFromDatabase = context.Purchase.Single(); Assert.NotEqual(default, purchaseFromDatabase.Id);
public Repository(CryptoBasketContext context) => this.context = context;
public PurchaseRepository(CryptoBasketContext context) : base(context) { }