/// <summary> /// Nagaan of alle vereisten voldaan zijn om de opgegeven gelieerde personen allemaal in te schrijven /// voor de opgegeven uitstap. /// </summary> /// <param name="uitstap">De uitstap waar we mensen voor willen inschrijven</param> /// <param name="gelieerdePersonen">De mensen die we willen inschrijven</param> /// <exception cref="FoutNummerException"></exception> /// <returns><c>True</c> als alle voorwaarden voldaan zijn, anders <c>false</c></returns> public bool InschrijvingenValideren(Uitstap uitstap, List <GelieerdePersoon> gelieerdePersonen) { // De gelieerde personen moeten aan een groep gekoppeld zijn. var groepen = (from gp in gelieerdePersonen select gp.Groep).Distinct().ToList(); if (!groepen.Any()) { return(false); } if (uitstap.GroepsWerkJaar == null) { return(false); } if (uitstap.GroepsWerkJaar.Groep == null) { return(false); } // Als er meer dan 1 groep is, dan is er minstens een groep verschillend van de groep // van de uitstap (duivenkotenprincipe)););); if (groepen.Count() > 1 || groepen.First().ID != uitstap.GroepsWerkJaar.Groep.ID) { throw new FoutNummerException( FoutNummer.UitstapNietVanGroep, Resources.FoutieveGroepUitstap); } return(true); }
public void BewarenMetAdresTest() { // ARRANGE var kipSyncMock = new Mock <ISyncPersoonService>(); kipSyncMock.Setup(src => src.BivakPlaatsBewaren(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <Adres>())).Verifiable(); Factory.InstantieRegistreren(kipSyncMock.Object); var uitstap = new Uitstap { IsBivak = true, Plaats = new Plaats { Adres = new BuitenLandsAdres { Land = new Land() } }, GroepsWerkJaar = new GroepsWerkJaar { Groep = new ChiroGroep() } }; // ACT var target = Factory.Maak <BivakSync>(); target.Bewaren(uitstap); // ASSERT kipSyncMock.VerifyAll(); }
public void BewarenContactZonderAdTest() { // ARRANGE var kipSyncMock = new Mock <ISyncPersoonService>(); kipSyncMock.Setup(src => src.BivakContactBewarenAdOnbekend(It.IsAny <int>(), It.IsAny <PersoonDetails>())).Verifiable(); Factory.InstantieRegistreren(kipSyncMock.Object); var uitstap = new Uitstap { IsBivak = true, GroepsWerkJaar = new GroepsWerkJaar { Groep = new ChiroGroep() }, ContactDeelnemer = new Deelnemer { GelieerdePersoon = new GelieerdePersoon { Persoon = new Persoon { InSync = true } } } }; // ACT var target = Factory.Maak <BivakSync>(); target.Bewaren(uitstap); // ASSERT kipSyncMock.VerifyAll(); }
public void Check(Uitstap g) { if (g == null || !_autorisatieMgr.IsGav(g)) { throw FaultExceptionHelper.GeenGav(); } }
public void PlaatsOpOnbekendAdresBewarenTest() { // ARRANGE var groep = new ChiroGroep { ID = 3 }; var bivak = new Uitstap { ID = 1, GroepsWerkJaar = new GroepsWerkJaar { Groep = groep } }; var land = new Land { Naam = "Nederland" }; // dependency injection voor data access var dummyRepositoryProvider = new Mock <IRepositoryProvider>(); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Uitstap>()) .Returns(new DummyRepo <Uitstap>(new List <Uitstap> { bivak })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Plaats>()) .Returns(new DummyRepo <Plaats>(new List <Plaats>())); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Adres>()) .Returns(new DummyRepo <Adres>(new List <Adres>())); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Land>()) .Returns(new DummyRepo <Land>(new List <Land> { land })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <WoonPlaats>()) .Returns(new DummyRepo <WoonPlaats>(new List <WoonPlaats>())); dummyRepositoryProvider.Setup(src => src.RepositoryGet <StraatNaam>()) .Returns(new DummyRepo <StraatNaam>(new List <StraatNaam>())); Factory.InstantieRegistreren(dummyRepositoryProvider.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.PlaatsBewaren(bivak.ID, "Warme Bivakplaats", new AdresInfo { StraatNaamNaam = "Zonnestraat", HuisNr = 8, PostNr = 9876, PostCode = "PF", WoonPlaatsNaam = "Warmegem", LandNaam = "Nederland" }); // ASSERT Assert.IsInstanceOf <BuitenLandsAdres>(bivak.Plaats.Adres); }
public void PlaatsBewarenTest() { // ARRANGE var groepsWerkJaar = new GroepsWerkJaar { Groep = new ChiroGroep { ID = 1 }, }; var bivak = new Uitstap { ID = 2, IsBivak = true, GroepsWerkJaar = groepsWerkJaar }; groepsWerkJaar.Uitstap.Add(bivak); var land = new Land() { Naam = "Nederland" }; // mock synchronisatie kipadmin var bivakSyncMock = new Mock <IBivakSync>(); bivakSyncMock.Setup(src => src.Bewaren(It.IsAny <Uitstap>())).Verifiable(); Factory.InstantieRegistreren(bivakSyncMock.Object); // mock data acces var repositoryProviderMock = new Mock <IRepositoryProvider>(); repositoryProviderMock.Setup(src => src.RepositoryGet <Uitstap>()) .Returns(new DummyRepo <Uitstap>(new List <Uitstap> { bivak })); repositoryProviderMock.Setup(src => src.RepositoryGet <Adres>()) .Returns(new DummyRepo <Adres>(new List <Adres>())); repositoryProviderMock.Setup(src => src.RepositoryGet <Land>()) .Returns(new DummyRepo <Land>(new List <Land> { land })); repositoryProviderMock.Setup(src => src.RepositoryGet <WoonPlaats>()) .Returns(new DummyRepo <WoonPlaats>(new List <WoonPlaats>())); repositoryProviderMock.Setup(src => src.RepositoryGet <StraatNaam>()) .Returns(new DummyRepo <StraatNaam>(new List <StraatNaam>())); Factory.InstantieRegistreren(repositoryProviderMock.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.PlaatsBewaren(bivak.ID, "Onze kampplaats", new AdresInfo { LandNaam = land.Naam }); // ASSERT bivakSyncMock.Verify(src => src.Bewaren(It.IsAny <Uitstap>()), Times.AtLeastOnce()); }
public void ContactInstellenSyncTest() { // ARRANGE var groepsWerkJaar = new GroepsWerkJaar { Groep = new ChiroGroep { ID = 1 }, }; var bivak = new Uitstap { ID = 2, IsBivak = true, GroepsWerkJaar = groepsWerkJaar, }; var deelnemer = new Deelnemer { ID = 3, Uitstap = bivak, GelieerdePersoon = new GelieerdePersoon { Persoon = new Persoon() } }; groepsWerkJaar.Uitstap.Add(bivak); // mock synchronisatie voor kipadmin var bivakSyncMock = new Mock <IBivakSync>(); bivakSyncMock.Setup(src => src.Bewaren(bivak)).Verifiable(); Factory.InstantieRegistreren(bivakSyncMock.Object); // mock data acces var repositoryProviderMock = new Mock <IRepositoryProvider>(); repositoryProviderMock.Setup(src => src.RepositoryGet <Deelnemer>()) .Returns(new DummyRepo <Deelnemer>(new List <Deelnemer> { deelnemer })); Factory.InstantieRegistreren(repositoryProviderMock.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.ContactInstellen(deelnemer.ID); // ASSERT Assert.IsTrue(deelnemer.GelieerdePersoon.Persoon.InSync); bivakSyncMock.Verify(src => src.Bewaren(bivak), Times.AtLeastOnce()); }
/// <summary> /// Bepaalt de status van de gegeven <paramref name="uitstap"/> /// </summary> /// <param name="uitstap">Uitstap, waarvan status bepaald moet worden</param> /// <returns>De status van de gegeven <paramref name="uitstap"/></returns> public BivakAangifteStatus StatusBepalen(Uitstap uitstap) { var resultaat = BivakAangifteStatus.Ok; if (uitstap.Plaats == null) { resultaat |= BivakAangifteStatus.PlaatsOntbreekt; } if (uitstap.ContactDeelnemer == null) { resultaat |= BivakAangifteStatus.ContactOntbreekt; } return(resultaat); }
public void ContactInstellenSaveTest() { // ARRANGE var groepsWerkJaar = new GroepsWerkJaar { Groep = new ChiroGroep { ID = 1 }, }; var bivak = new Uitstap { ID = 2, IsBivak = true, GroepsWerkJaar = groepsWerkJaar, }; var deelnemer = new Deelnemer { ID = 3, Uitstap = bivak, GelieerdePersoon = new GelieerdePersoon { Persoon = new Persoon() } }; groepsWerkJaar.Uitstap.Add(bivak); // mock data acces var deelnemersRepoMock = new DummyRepo <Deelnemer>(new List <Deelnemer> { deelnemer }); var repositoryProviderMock = new Mock <IRepositoryProvider>(); repositoryProviderMock.Setup(src => src.RepositoryGet <Deelnemer>()) .Returns(deelnemersRepoMock); Factory.InstantieRegistreren(repositoryProviderMock.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.ContactInstellen(deelnemer.ID); // ASSERT Assert.IsFalse(deelnemersRepoMock.SaveCount == 0); }
public void BivakVerwijderenAlsGeenBivakMeerTest() { // ARRANGE var groepsWerkJaar = new GroepsWerkJaar { Groep = new ChiroGroep { ID = 1 }, }; var bivak = new Uitstap { ID = 2, IsBivak = true, GroepsWerkJaar = groepsWerkJaar }; groepsWerkJaar.Uitstap.Add(bivak); var uitstapInfo = new UitstapInfo { ID = bivak.ID, IsBivak = false }; // mock synchronisatie voor kipadmin var bivakSyncMock = new Mock <IBivakSync>(); bivakSyncMock.Setup(src => src.Verwijderen(bivak.ID)).Verifiable(); Factory.InstantieRegistreren(bivakSyncMock.Object); // mock data acces var repositoryProviderMock = new Mock <IRepositoryProvider>(); repositoryProviderMock.Setup(src => src.RepositoryGet <GroepsWerkJaar>()) .Returns(new DummyRepo <GroepsWerkJaar>(new List <GroepsWerkJaar> { groepsWerkJaar })); Factory.InstantieRegistreren(repositoryProviderMock.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.Bewaren(groepsWerkJaar.Groep.ID, uitstapInfo); // ASSERT bivakSyncMock.Verify(src => src.Verwijderen(bivak.ID), Times.AtLeastOnce()); }
/// <summary> /// Bewaart de uitstap <paramref name="uitstap"/> in Kipadmin als bivak. Met contactpersoon /// en plaats. /// </summary> /// <param name="uitstap">Te bewaren uitstap</param> public void Bewaren(Uitstap uitstap) { // TODO (#1057): Verfijnen van sync bivakgegevens van GAP naar Kipadmin/CiviCRM var teSyncen = MappingHelper.Map <Uitstap, Bivak>(uitstap); ServiceHelper.CallService <ISyncPersoonService>(svc => svc.BivakBewaren(teSyncen)); var contactPersoon = uitstap.ContactDeelnemer != null ? uitstap.ContactDeelnemer.GelieerdePersoon : null; if (uitstap.Plaats != null && uitstap.Plaats.Adres != null) { // Als we het syncen van het adres ooit lostrekken van het syncen van het bivak (#1057), moeten we // eraan denken dat de naam van het bivak in Civi moet veranderen als het bivakadres verandert (#5030). ServiceHelper.CallService <ISyncPersoonService>( svc => svc.BivakPlaatsBewaren(uitstap.ID, uitstap.Plaats.Naam, MappingHelper.Map <Adres, Kip.ServiceContracts.DataContracts.Adres>(uitstap.Plaats.Adres))); } if (contactPersoon != null) { Debug.Assert(contactPersoon.Persoon.InSync); if (contactPersoon.Persoon.AdNummer != null) { // AD-nummer gekend: gewoon koppelen via AD-nummer ServiceHelper.CallService <ISyncPersoonService>(svc => svc.BivakContactBewaren( uitstap.ID, (int)contactPersoon.Persoon.AdNummer)); } else { ServiceHelper.CallService <ISyncPersoonService>( svc => svc.BivakContactBewarenAdOnbekend(uitstap.ID, MappingHelper.Map <GelieerdePersoon, PersoonDetails>(contactPersoon))); } } }
public bool IsGav(Uitstap uitstap) { return(IsGav(uitstap.GroepsWerkJaar.Groep)); }
public bool IsGav(Uitstap gelieerdePersoon) { return(true); }
public bool IsGav(Uitstap gelieerdePersoon) { throw new NotImplementedException(); }
private static string BivakNaam(Uitstap src) { return(String.Format("Bivak {0} - {1}, {2} {3}", src.GroepsWerkJaar.Groep.Code, src.GroepsWerkJaar.Groep.Naam, src.Plaats == null ? String.Empty : WoonPlaats(src.Plaats.Adres), src.DatumTot.Year)); }
public void PlaatsOpGekendAdresBewarenTest() { // ARRANGE var groep = new ChiroGroep { ID = 3 }; var bivak = new Uitstap { ID = 1, GroepsWerkJaar = new GroepsWerkJaar { Groep = groep } }; var adres = new BuitenLandsAdres { Straat = "Vorststraat", HuisNr = 3, PostCode = "BR 1234", WoonPlaats = "Killegem", Land = new Land { Naam = "Nederland" } }; // dependency injection voor data access var dummyRepositoryProvider = new Mock <IRepositoryProvider>(); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Uitstap>()) .Returns(new DummyRepo <Uitstap>(new List <Uitstap> { bivak })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Plaats>()) .Returns(new DummyRepo <Plaats>(new List <Plaats>())); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Adres>()) .Returns(new DummyRepo <Adres>(new List <Adres> { adres })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Land>()) .Returns(new DummyRepo <Land>(new List <Land> { adres.Land })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <WoonPlaats>()) .Returns(new DummyRepo <WoonPlaats>(new List <WoonPlaats>())); dummyRepositoryProvider.Setup(src => src.RepositoryGet <StraatNaam>()) .Returns(new DummyRepo <StraatNaam>(new List <StraatNaam>())); Factory.InstantieRegistreren(dummyRepositoryProvider.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.PlaatsBewaren(bivak.ID, "Warme Bivakplaats", new AdresInfo { StraatNaamNaam = adres.Straat, HuisNr = adres.HuisNr, PostCode = adres.PostCode, WoonPlaatsNaam = adres.WoonPlaats, LandNaam = adres.Land.Naam }); // ASSERT Assert.AreEqual(bivak.Plaats.Adres.ID, adres.ID); }
public void Bewaren(Uitstap uitstap) { }
public void PlaatsVervangenTest() { // ARRANGE var groep = new ChiroGroep { ID = 3 }; var bivak = new Uitstap { ID = 1, GroepsWerkJaar = new GroepsWerkJaar { Groep = groep } }; var adres = new BuitenLandsAdres { Straat = "Vorststraat", HuisNr = 3, PostCode = "BR 1234", WoonPlaats = "Killegem", Land = new Land { Naam = "Nederland" } }; var plaats = new Plaats { ID = 2, Naam = "Coole bivakplaats", Adres = adres, Groep = groep }; bivak.Plaats = plaats; // Bivak heeft al een plaats // dependency injection voor data access var dummyRepositoryProvider = new Mock <IRepositoryProvider>(); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Uitstap>()) .Returns(new DummyRepo <Uitstap>(new List <Uitstap> { bivak })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Plaats>()) .Returns(new DummyRepo <Plaats>(new List <Plaats> { plaats })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Adres>()) .Returns(new DummyRepo <Adres>(new List <Adres> { adres })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <Land>()) .Returns(new DummyRepo <Land>(new List <Land> { adres.Land })); dummyRepositoryProvider.Setup(src => src.RepositoryGet <WoonPlaats>()) .Returns(new DummyRepo <WoonPlaats>(new List <WoonPlaats>())); dummyRepositoryProvider.Setup(src => src.RepositoryGet <StraatNaam>()) .Returns(new DummyRepo <StraatNaam>(new List <StraatNaam>())); Factory.InstantieRegistreren(dummyRepositoryProvider.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.PlaatsBewaren(bivak.ID, "Warme Bivakplaats", new AdresInfo { StraatNaamNaam = "Zonnestraat", HuisNr = 8, PostNr = 9876, PostCode = "PF", WoonPlaatsNaam = "Warmegem", LandNaam = "Nederland" }); // ASSERT Assert.AreNotEqual(bivak.Plaats.ID, plaats.ID); // is de plaats wel veranderd? }