public void incrementaNumeratoreFotoTest() { DateTime dataUltimoScarico; const int gg = 123; int newNum; // --- LumenApplication.Instance.stato.giornataLavorativa = new DateTime(2011, 10, 31); dataUltimoScarico = new DateTime(2011, 10, 20); newNum = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico); Assert.IsTrue(newNum == 0); // --- dataUltimoScarico = new DateTime(2011, 10, 31); newNum = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico); Assert.IsTrue(newNum == gg); // --- dataUltimoScarico = new DateTime(2011, 10, 30); newNum = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico); Assert.IsTrue(newNum == 0); // questa è una anomalia. non so ancora come gestirla. dataUltimoScarico = new DateTime(2011, 11, 02); newNum = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico); Assert.IsTrue(newNum == gg); // --- dataUltimoScarico = new DateTime(2000, 10, 31); newNum = NumeratoreFotogrammi.eventualeAzzeramento("M", gg, dataUltimoScarico); Assert.IsTrue(newNum == 0); dataUltimoScarico = DateTime.Today.AddDays(-1); // ieri newNum = NumeratoreFotogrammi.eventualeAzzeramento("M", gg, dataUltimoScarico); Assert.IsTrue(newNum == gg); // --- try { newNum = NumeratoreFotogrammi.eventualeAzzeramento("x", gg, dataUltimoScarico); Assert.Fail(); } catch (Exception) { // ok se ha dato eccezione va bene. } }
public void ricostruire() { if (!analisiEffettuata) { throw new InvalidOperationException("Prima di ricostruire, occorre lanciare l'analisi"); } foreach (string idFotografoMancante in idsFotografiMancanti) { creaFotografoMancante(idFotografoMancante); } int test = UnitOfWorkScope.currentDbContext.SaveChanges(); int ultimoNumFoto = NumeratoreFotogrammi.incrementaNumeratoreFoto(fiFotosMancanti.Count); int conta = 0; // Creo eventuali fotografie mancanti contaFotoAggiunte = 0; foreach (FileInfo fiFotoMancante in fiFotosMancanti) { creaFotografiaMancante(fiFotoMancante, ++conta + ultimoNumFoto); } // Elimino eventuali fotografie che non hanno più l'immagine jpg su disco contaFotoEliminate = 0; foreach (Fotografia f in fotografieSenzaImmagini) { UnitOfWorkScope.currentDbContext.Fotografie.Remove(f); ++contaFotoEliminate; } // Salvo il contesto int quanti = UnitOfWorkScope.currentDbContext.SaveChanges(); // Piccolo controllo di paranoia if (quanti != fotografieSenzaImmagini.Count) { _giornale.Warn("Dovevo cancellare " + contaJpegMancanti + " fotografie ma in test mi dice: " + quanti); } }