public void AdresToevoegenVoorkeurTest()
        {
            // ARRANGE

            var gelieerdePersoon = new GelieerdePersoon {
                Persoon = new Persoon()
            };

            gelieerdePersoon.Persoon.GelieerdePersoon.Add(gelieerdePersoon);

            var adres = new BelgischAdres();

            // ACT

            var target = new GelieerdePersonenManager();

            target.AdresToevoegen(new List <GelieerdePersoon> {
                gelieerdePersoon
            }, adres, AdresTypeEnum.Thuis, true);

            // ASSERT

            // vind het persoonsadresobject
            var persoonsAdres = gelieerdePersoon.Persoon.PersoonsAdres.First();

            // weet het persoonsadresobject dat het voorkeursadres is?
            Assert.IsNotNull(persoonsAdres.GelieerdePersoon.FirstOrDefault());
        }
        public void AdresGenotenZelfdeGroepTest()
        {
            // ARRANGE

            var gelieerdePersoon1 = new GelieerdePersoon {
                ID = 2, Persoon = new Persoon {
                    ID = 4
                }
            };

            gelieerdePersoon1.Persoon.GelieerdePersoon.Add(gelieerdePersoon1);

            var gelieerdePersoon2 = new GelieerdePersoon {
                ID = 3, Persoon = new Persoon {
                    ID = 5
                }
            };

            gelieerdePersoon2.Persoon.GelieerdePersoon.Add(gelieerdePersoon2);

            var groep = new ChiroGroep
            {
                ID = 1,
                GelieerdePersoon = new List <GelieerdePersoon> {
                    gelieerdePersoon1, gelieerdePersoon2
                }
            };

            gelieerdePersoon1.Groep = groep;
            gelieerdePersoon2.Groep = groep;

            var adres = new BelgischAdres();

            var persoonsAdres1 = new PersoonsAdres {
                ID = 6, Persoon = gelieerdePersoon1.Persoon, Adres = adres
            };
            var persoonsAdres2 = new PersoonsAdres {
                ID = 7, Persoon = gelieerdePersoon2.Persoon, Adres = adres
            };

            gelieerdePersoon1.Persoon.PersoonsAdres = new List <PersoonsAdres> {
                persoonsAdres1
            };
            gelieerdePersoon2.Persoon.PersoonsAdres = new List <PersoonsAdres> {
                persoonsAdres2
            };
            adres.PersoonsAdres = new List <PersoonsAdres> {
                persoonsAdres1, persoonsAdres2
            };

            // ACT

            var target = new GelieerdePersonenManager();
            var result = target.AdresGenotenUitZelfdeGroep(gelieerdePersoon1);

            // ASSERT

            Assert.IsTrue(result.Contains(gelieerdePersoon1));
            Assert.IsTrue(result.Contains(gelieerdePersoon2));
        }
        public void AdresToevoegenOudeVoorkeurTest()
        {
            // ARRANGE

            var gelieerdePersoon = new GelieerdePersoon {
                Persoon = new Persoon()
            };

            gelieerdePersoon.Persoon.GelieerdePersoon.Add(gelieerdePersoon);

            var oudVoorkeursAdres = new BelgischAdres {
                ID = 1
            };
            var oudPersoonsAdres = new PersoonsAdres
            {
                Persoon          = gelieerdePersoon.Persoon,
                Adres            = oudVoorkeursAdres,
                GelieerdePersoon = new List <GelieerdePersoon> {
                    gelieerdePersoon
                }
            };

            // Het voorkeursadres is gekoppeld aan gelieerde persoon, alle adressen aan persoon.
            gelieerdePersoon.PersoonsAdres = oudPersoonsAdres;
            gelieerdePersoon.Persoon.PersoonsAdres.Add(oudPersoonsAdres);

            var nieuwVoorkeursAdres = new BelgischAdres {
                ID = 2
            };

            // ACT

            var target = new GelieerdePersonenManager();

            target.AdresToevoegen(new List <GelieerdePersoon> {
                gelieerdePersoon
            }, nieuwVoorkeursAdres, AdresTypeEnum.Thuis, true);

            // ASSERT

            // het oude voorkeursadres mag niet meer aan gelieerdePersoon gekoppeld zijn.
            // (wel nog aan persoon, natuurlijk)
            Assert.IsFalse(oudPersoonsAdres.GelieerdePersoon.Any());
        }