public void EfCore_GetAll_With_Includes_In_Strategy_String_LazyLoads_Email()
        {
            var repository = new EfCoreRepository <Contact, string>(dbContext);

            var strategy = new GenericFetchStrategy <Contact>();

            strategy.Include(x => x.EmailAddresses);

            var contact = repository.GetAll(strategy).First();

            contact.Name.ShouldBe("Test User 1");
            dbContext.QueryLog.Count(filterSelects).ShouldBe(2);
            contact.EmailAddresses.First().Email.ShouldBe("*****@*****.**");
            dbContext.QueryLog.Count(filterSelects).ShouldBe(2);
        }
        public void GetMany_List_Should_Return_Multiple_Items_With_Strategy(IRepository <Contact, string> repository)
        {
            var strategy = new GenericFetchStrategy <Contact>();

            strategy.Include(c => c.EmailAddresses);


            for (var i = 1; i <= 5; i++)
            {
                var contact = new Contact {
                    ContactId = i.ToString(), Name = "Test User " + i
                };
                repository.Add(contact);
            }

            var items = repository.GetMany(new[] { "1", "3", "4", "5" }.ToList(), strategy);

            items.Count().ShouldBe(4);
        }
        public void GetAll_With_Includes_In_Strategy_String_LazyLoads_Email()
        {
            dbContext.Configuration.LazyLoadingEnabled = true;
            dbContext.Database.Log = sql =>
            {
                if (sql.Contains("SELECT"))
                {
                    queries.Add(sql);
                }
            };
            var repository = new MyEfRepository(dbContext);


            var strategy = new GenericFetchStrategy <Contact>();

            strategy.Include(x => x.EmailAddresses);

            var contact = repository.GetAll(strategy).First();

            contact.Name.ShouldEqual("Test User 1");
            queries.Count().ShouldEqual(1);
            contact.EmailAddresses.First().Email.ShouldEqual("*****@*****.**");
            queries.Count().ShouldEqual(1);
        }