public void Can_GetEggProductionReport()
        {
            var houses = new List <HenHouse>
            {
                new HenHouse
                {
                    Id            = Guid.NewGuid(),
                    Active        = true,
                    Depreciation  = 120,
                    Name          = "House 1",
                    ProductiveAge = 90,
                    PurchaseCost  = 120,
                    Weight        = 120,
                    YearUsage     = 5
                },
                new HenHouse
                {
                    Id            = Guid.NewGuid(),
                    Active        = true,
                    Depreciation  = 100,
                    Name          = "House 2",
                    ProductiveAge = 80,
                    PurchaseCost  = 100,
                    Weight        = 190,
                    YearUsage     = 3
                }
            };

            var productionList = new List <Models.Data.EggProduction>
            {
                new Models.Data.EggProduction
                {
                    Id   = Guid.NewGuid(),
                    Date = DateTime.Today.AddDays(-1)
                },
                new Models.Data.EggProduction
                {
                    Id   = Guid.NewGuid(),
                    Date = DateTime.Today
                }
            };

            var detailList = new List <Models.Data.EggProductionDetail>
            {
                new Models.Data.EggProductionDetail
                {
                    CrackedEggCount = 1,
                    Fcr             = 1,
                    GoodEggCount    = 12,
                    HouseId         = houses[0].Id,
                    ProductionId    = productionList[0].Id,
                    RetailQuantity  = 100
                },
                new Models.Data.EggProductionDetail
                {
                    CrackedEggCount = 2,
                    Fcr             = 1,
                    GoodEggCount    = 12,
                    HouseId         = houses[1].Id,
                    ProductionId    = productionList[0].Id,
                    RetailQuantity  = 200
                },
                new Models.Data.EggProductionDetail
                {
                    CrackedEggCount = 1,
                    Fcr             = 1,
                    GoodEggCount    = 12,
                    HouseId         = houses[0].Id,
                    ProductionId    = productionList[1].Id,
                    RetailQuantity  = 100
                },
                new Models.Data.EggProductionDetail
                {
                    CrackedEggCount = 2,
                    Fcr             = 1,
                    GoodEggCount    = 12,
                    HouseId         = houses[1].Id,
                    ProductionId    = productionList[1].Id,
                    RetailQuantity  = 200
                },
            };



            using (var conn = factory.OpenDbConnection())
            {
                foreach (var house in houses)
                {
                    conn.InsertParam(house);
                }

                foreach (var production in productionList)
                {
                    conn.InsertParam(production);
                }

                foreach (var detail in detailList)
                {
                    conn.InsertParam(detail);
                }
            }

            var list = service.GetEggProductionReport(DateTime.Today.AddDays(-1), DateTime.Today);

            foreach (var item in list)
            {
                var production = productionList.First(p => p.Id == item.Id);

                Assert.Equal(production.Date, item.Date);

                foreach (var detail in item.Details)
                {
                    var detailData = detailList.First(d => d.ProductionId == item.Id && d.HouseId == detail.House.Id);

                    Assert.Equal(detailData.RetailQuantity, detail.RetailQuantity);
                    Assert.Equal(detailData.GoodEggCount, detail.GoodEggCount);
                    Assert.Equal(detailData.CrackedEggCount, detail.CrackedEggCount);
                    Assert.Equal(detailData.Fcr, detail.Fcr);
                }
            }
        }