public void TestSave(bool useAsyncMethod)
        {
            var countBefore   = context.Set <Person>().Count();
            var countExpected = ++countBefore;

            var personInserted = PersonBuilder.NewInstance().Build();

            SavePerson(personInserted, useAsyncMethod);

            var personUpdated = PersonBuilder.NewInstance().SetId(personInserted.Id).Build();

            SavePerson(personUpdated, useAsyncMethod);

            var personFinded = context.Find <Person>(personUpdated.Id);

            personUpdated.ToExpectedObject().ShouldMatch(personFinded);
            Assert.Equal(countExpected, context.Set <Person>().Count());
        }
        private IList <Person> InsertTestPersonsList()
        {
            var persons = new List <Person>()
            {
                PersonBuilder.NewInstance().Build(),
                PersonBuilder.NewInstance().Build(),
                PersonBuilder.NewInstance().Build(),
                PersonBuilder.NewInstance().Build(),
                PersonBuilder.NewInstance().Build(),
            };

            persons.ForEach(p =>
            {
                personRepository.Save(p);
                context.SaveChanges();

                Assert.True(personRepository.Exists(p.Id));
            });

            return(persons);
        }
        public void TestInsert(bool useAsyncMethod)
        {
            var countBefore   = context.Persons.CountAsync().Result;
            var countExpected = ++countBefore;

            var personExpected = PersonBuilder.NewInstance().Build();

            if (useAsyncMethod)
            {
                personRepository.InsertAsync(personExpected).Wait();
            }
            else
            {
                personRepository.Insert(personExpected);
            }

            context.SaveChanges();

            Assert.True(personExpected.Id > 0);
            Assert.Equal(countExpected, context.Persons.CountAsync().Result);
        }