protected void ValidateGetEntityResult(EQBPerson petra)
 {
     Assert.AreEqual("Ana", petra.BestFriend.Name);
     Assert.AreEqual("Simon", petra.BestFriend.BestFriend.Name);
     Assert.AreEqual("1", petra.BestFriend.IdentityCard.Code);
     Assert.AreEqual("Rok", petra.BestFriend.BestFriend.BestFriend.Name);
     Assert.AreEqual("Petra", petra.BestFriend.BestFriend.BestFriend.BestFriend.Name);
     Assert.AreEqual("Ana", petra.BestFriend.BestFriend.BestFriend.BestFriend.BestFriend.Name);
     Assert.AreEqual(1, petra.CurrentOwnedVehicles.Count);
     Assert.AreEqual("3", petra.DrivingLicence.Code);
     Assert.AreEqual("4", petra.IdentityCard.Code);
     Assert.AreEqual("System", petra.CreatedBy.UserName);
     Assert.AreEqual(petra.BestFriend.BestFriend, petra.MarriedWith);
     Assert.AreEqual(1, petra.OwnedHouses.Count);
     Assert.AreEqual(2, petra.PreviouslyOwnedVehicles.Count);
     Assert.AreEqual("Audi", petra.CurrentOwnedVehicles.First().Model);
     Assert.AreEqual(2, petra.CurrentOwnedVehicles.First().RoadworthyTests.Count);
     Assert.AreEqual(2, petra.CurrentOwnedVehicles.First().MileageHistory.Count);
     Assert.AreEqual(5000, petra.CurrentOwnedVehicles.First().MileageHistory[new DateTime(2010, 1, 1)]);
     foreach (var wheel in petra.CurrentOwnedVehicles.First().Wheels)
     {
         Assert.AreEqual(235, wheel.Width);
     }
 }
        protected void FillData()
        {
            var system = new EQBUser {
                UserName = "******"
            };
            var ana = new EQBPerson {
                Age = 23, Name = "Ana", CreatedBy = system
            };
            var rok = new EQBPerson {
                Age = 24, Name = "Rok", CreatedBy = system
            };
            var simon = new EQBPerson {
                Age = 25, Name = "Simon", CreatedBy = system
            };
            var petra = new EQBPerson {
                Age = 22, Name = "Petra", CreatedBy = system
            };

            //Setting best friends
            petra.BestFriend = ana;
            ana.BestFriend   = simon;
            simon.BestFriend = rok;
            rok.BestFriend   = petra;

            //Setting Identity card
            ana.IdentityCard = new EQBIdentityCard {
                Code = "1", Owner = ana
            };
            ana.Identity = new EQBIdentity {
                Code = "1", Owner = ana
            };
            rok.IdentityCard = new EQBIdentityCard {
                Code = "2", Owner = rok
            };
            rok.Identity = new EQBIdentity {
                Code = "2", Owner = rok
            };
            simon.IdentityCard = new EQBIdentityCard {
                Code = "3", Owner = simon
            };
            simon.Identity = new EQBIdentity {
                Code = "3", Owner = simon
            };
            petra.IdentityCard = new EQBIdentityCard {
                Code = "4", Owner = petra
            };
            petra.Identity = new EQBIdentity {
                Code = "4", Owner = petra
            };

            //Setting Driving licence
            rok.DrivingLicence = new EQBDrivingLicence {
                Code = "1", Owner = rok
            };
            simon.DrivingLicence = new EQBDrivingLicence {
                Code = "2", Owner = simon
            };
            petra.DrivingLicence = new EQBDrivingLicence {
                Code = "3", Owner = petra
            };

            //Setting MerriedWith
            rok.MarriedWith = ana;
            ana.MarriedWith = rok;

            petra.MarriedWith = simon;
            simon.MarriedWith = petra;

            //Setting Vehicles
            var ferrari = new EQBVehicle {
                BuildYear = 2002, Model = "Ferrari"
            };

            ferrari.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 320, Vehicle = ferrari
            });
            ferrari.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 320, Vehicle = ferrari
            });
            ferrari.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 260, Vehicle = ferrari
            });
            ferrari.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 260, Vehicle = ferrari
            });
            ferrari.RoadworthyTests.Add(
                new DateTime(2002, 2, 1),
                new EQBRoadworthyTest
            {
                Vehicle  = ferrari,
                TestDate = new DateTime(2002, 2, 1),
                Passed   = true,
                Comments = "I like the shade of red."
            });
            ferrari.MileageHistory.Add(new DateTime(2002, 1, 1), 0);
            ferrari.MileageHistory.Add(new DateTime(2006, 1, 1), 60000);
            ferrari.MileageHistory.Add(new DateTime(2010, 1, 1), 100000);

            var audi = new EQBVehicle {
                BuildYear = 2009, Model = "Audi"
            };

            audi.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 235, Vehicle = audi
            });
            audi.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 235, Vehicle = audi
            });
            audi.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 235, Vehicle = audi
            });
            audi.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 235, Vehicle = audi
            });
            audi.RoadworthyTests.Add(
                new DateTime(2009, 2, 1),
                new EQBRoadworthyTest
            {
                Vehicle  = audi,
                TestDate = new DateTime(2009, 2, 1),
                Passed   = false,
                Comments = "Brakes failing."
            });
            audi.RoadworthyTests.Add(
                new DateTime(2009, 3, 1),
                new EQBRoadworthyTest
            {
                Vehicle  = audi,
                TestDate = new DateTime(2009, 3, 1),
                Passed   = true,
                Comments = "All good now."
            });
            audi.MileageHistory.Add(new DateTime(2009, 1, 1), 0);
            audi.MileageHistory.Add(new DateTime(2010, 1, 1), 5000);

            var bmw = new EQBVehicle {
                BuildYear = 1993, Model = "Bmw"
            };

            bmw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 205, Vehicle = bmw
            });
            bmw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 205, Vehicle = bmw
            });
            bmw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 205, Vehicle = bmw
            });
            bmw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 205, Vehicle = bmw
            });
            // Deliberately no roadworthy tests or mileage history

            var vw = new EQBVehicle {
                BuildYear = 2002, Model = "Vw"
            };

            vw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 195, Vehicle = vw
            });
            vw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 195, Vehicle = vw
            });
            vw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 195, Vehicle = vw
            });
            vw.Wheels.Add(new TestEQBWheel {
                Diameter = 45, Width = 195, Vehicle = vw
            });
            vw.RoadworthyTests.Add(
                new DateTime(2002, 3, 1),
                new EQBRoadworthyTest
            {
                Vehicle  = vw,
                TestDate = new DateTime(2002, 3, 1),
                Passed   = true,
                Comments = "No problems."
            });
            vw.MileageHistory.Add(new DateTime(2002, 1, 1), 0);
            vw.MileageHistory.Add(new DateTime(2015, 1, 1), 150000);

            petra.PreviouslyOwnedVehicles.Add(vw);
            petra.PreviouslyOwnedVehicles.Add(bmw);
            petra.CurrentOwnedVehicles.Add(audi);
            audi.CurrentOwner = petra;

            simon.PreviouslyOwnedVehicles.Add(bmw);
            simon.PreviouslyOwnedVehicles.Add(audi);
            simon.CurrentOwnedVehicles.Add(ferrari);
            ferrari.CurrentOwner = simon;

            //Setting Houses
            var house1 = new EQBHouse {
                Address = "Address1"
            };
            var house2 = new EQBHouse {
                Address = "Address2"
            };

            house1.Owners.Add(ana);
            ana.OwnedHouses.Add(house1);
            house1.Owners.Add(rok);
            rok.OwnedHouses.Add(house1);

            house2.Owners.Add(simon);
            simon.OwnedHouses.Add(house2);
            house2.Owners.Add(petra);
            petra.OwnedHouses.Add(house2);

            //Saving entities
            using (var session = NHConfig.OpenSession())
            {
                session.Save(petra);
                session.Save(rok);
                session.Save(simon);
                session.Save(ana);
                session.Flush();
            }
        }