Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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");
            }
        }
Esempio n. 3
0
 public Task Save([FromBody] BaPerson person)
 {
     return(_mediator.Process(new SaveCommand <BaPerson> {
         Entity = person
     }));
 }