public async Task TestInsert() { // Act int baPersonId; using (new EnsureExecutionScope(IntegrationTestEnvironment.Container)) { var context = IntegrationTestEnvironment.Container.GetInstance <IDbContext>(); var personen = IntegrationTestEnvironment.Container.GetInstance <IRepository <BaPerson> >(); var person = new BaPerson { Name = "Müller", Vorname = "Hans" }; await personen.InsertOrUpdateEntity(person); await context.SaveChangesAsync(); baPersonId = person.BaPersonID; } // Assert baPersonId.ShouldNotBe(0); using (new EnsureExecutionScope(IntegrationTestEnvironment.Container)) { var personen = IntegrationTestEnvironment.Container.GetInstance <IRepository <BaPerson> >(); var personAssert = await personen.GetById(baPersonId); personAssert.ShouldNotBeNull(); } }
public async Task TestImplicitTransactionDuringInsertOfIndependentEntities() { // Arrange var person = new BaPerson { Name = "Meier", Vorname = "Hans" }; var adresse = new BaAdresse { BaPersonId = -1, //invalid DatumVon = DateTime.Today, }; // Act using (new EnsureExecutionScope(IntegrationTestEnvironment.Container)) { var context = IntegrationTestEnvironment.Container.GetInstance <IDbContext>(); var adressen = IntegrationTestEnvironment.Container.GetInstance <IRepository <BaAdresse> >(); var personen = IntegrationTestEnvironment.Container.GetInstance <IRepository <BaPerson> >(); await adressen.InsertOrUpdateEntity(adresse); await personen.InsertOrUpdateEntity(person); var ex = await Should.ThrowAsync <DbUpdateException>(context.SaveChangesAsync(), "Die Adresse dürfte wegen der ungültigen BaPersonID nicht eingefügt werden"); var sqlEx = ex.InnerException.ShouldBeOfType <SqlException>(); sqlEx.Number.ShouldBe(547); } // Assert using (new EnsureExecutionScope(IntegrationTestEnvironment.Container)) { var personen = IntegrationTestEnvironment.Container.GetInstance <IRepository <BaPerson> >(); var personAssert = await personen.GetById(person.BaPersonID); personAssert.ShouldBeNull("Durch das implizite Transaktionshandling des DbContext dürfte das Insert der Person nicht commited werden"); } }
public Task Save([FromBody] BaPerson person) { return(_mediator.Process(new SaveCommand <BaPerson> { Entity = person })); }