public int Bewaren(int groepId, UitstapInfo info) { // Als de uitstap een ID heeft, moet een bestaande uitstap opgehaald worden. // Anders maken we een nieuwe. Uitstap uitstap; bool wasBivak = false; var groepsWerkJaar = _groepsWerkJaarRepo.Select() .Where(gwj => gwj.Groep.ID == groepId) .OrderByDescending(gwj => gwj.WerkJaar) .First(); if (!_autorisatieMgr.IsGav(groepsWerkJaar.Groep)) { throw FaultExceptionHelper.GeenGav(); } if (info.ID == 0) { // Nieuwe uitstap uitstap = _mappingHelper.Map <UitstapInfo, Uitstap>(info); uitstap.GroepsWerkJaar = groepsWerkJaar; groepsWerkJaar.Uitstap.Add(uitstap); } else { // Haal origineel op, gekoppeld aan groepswerkjaar uitstap = (from u in groepsWerkJaar.Uitstap where u.ID == info.ID select u).First(); wasBivak = uitstap.IsBivak; // overschrijf met gegevens uit 'info' _mappingHelper.Map(info, uitstap); } #if KIPDORP using (var tx = new TransactionScope()) { #endif _groepsWerkJaarRepo.SaveChanges(); if (uitstap.IsBivak) { _bivakSync.Bewaren(uitstap); } else if (wasBivak) { _bivakSync.Verwijderen(uitstap.ID); } #if KIPDORP tx.Complete(); } #endif return(uitstap.ID); }
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()); }
public void BewarenTest() { // ARRANGE var groepsWerkJaar = new GroepsWerkJaar { Groep = new ChiroGroep { ID = 1 } }; var uitstapInfo = new UitstapInfo { IsBivak = true }; var gwjRepo = new DummyRepo <GroepsWerkJaar>(new List <GroepsWerkJaar> { groepsWerkJaar }); // mock synchronisatie voor kipadmin var bivakSyncMock = new Mock <IBivakSync>(); bivakSyncMock.Setup(src => src.Bewaren(It.IsAny <Uitstap>())) // controleer of het bivak bewaard werd voor de sync. .Callback((() => Assert.AreNotEqual(0, gwjRepo.SaveCount))) .Verifiable(); Factory.InstantieRegistreren(bivakSyncMock.Object); // mock data acces var repositoryProviderMock = new Mock <IRepositoryProvider>(); repositoryProviderMock.Setup(src => src.RepositoryGet <GroepsWerkJaar>()) .Returns(gwjRepo); Factory.InstantieRegistreren(repositoryProviderMock.Object); // ACT var target = Factory.Maak <UitstappenService>(); target.Bewaren(groepsWerkJaar.Groep.ID, uitstapInfo); // ASSERT bivakSyncMock.Verify(src => src.Bewaren(It.IsAny <Uitstap>()), Times.AtLeastOnce()); }