public void vendiFotoStampaDirettaTest() { using (new UnitOfWorkScope(false)) { // Ho bisogno di una stampante con il formato carta A5 StampantiAbbinateCollection stampantiAbbinate = StampantiAbbinateUtil.deserializza(Configurazione.UserConfigLumen.stampantiAbbinate); // TODO il test presume che ci sia una stampante abbinata con la carta A5. // se non esiste, creare un abbinamento ad hoc. _impl.carrello.intestazione = VenditoreSrvImpl.INTESTAZIONE_STAMPA_RAPIDA; ParamStampaFoto p = ricavaParamStampa(); LumenEntities dbContext = UnitOfWorkScope.currentDbContext; List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(QUANTE).ToList(); contaStampate = 0; _impl.aggiungereStampe(fotos, p); _impl.vendereCarrello(); Assert.IsTrue(_impl.carrello.venduto); Assert.IsTrue(_impl.carrello.totaleAPagare > 0); } Console.WriteLine("FINITO"); }
public void stampaProviniFotoProviniTest() { using (new UnitOfWorkScope(false)) { LumenEntities dbContext = UnitOfWorkScope.currentDbContext; List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(QUANTE).ToList(); //Carico una stampa Provini ParamStampaProvini p = ricavaParamStampaProvini(); p.numeroColonne = 5; p.numeroRighe = 5; p.macchiaProvini = false; _impl.aggiungereStampe(fotos, p); //Carico una stampa Foto ParamStampaFoto p2 = ricavaParamStampaFoto(); CodaDiStampe c1 = new CodaDiStampe(p2, Costanti.NomeStampantePdf); Fotografia foto = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(QUANTE + 1).ToList().Last(); c1.EnqueueItem(new LavoroDiStampaFoto(foto, p2)); c1.Start(); List <Fotografia> fotos2 = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(2 * QUANTE + 1).ToList(); // Carico una stampa Provini ParamStampaProvini p3 = ricavaParamStampaProvini(); p3.numeroColonne = 3; p3.numeroRighe = 4; p3.macchiaProvini = true; fotos2.RemoveRange(0, QUANTE + 1); _impl.aggiungereStampe(fotos2, p3); //Carico una stampa Foto ParamStampaFoto p4 = ricavaParamStampaFoto(); CodaDiStampe c2 = new CodaDiStampe(p4, Costanti.NomeStampantePdf); Fotografia foto2 = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(2 * QUANTE + 2).ToList().Last(); c2.EnqueueItem(new LavoroDiStampaFoto(foto2, p4)); c2.Start(); } while (_contaElaborazioniTerminate != 2) { Thread.Sleep(1000); } Assert.IsTrue(esitoStampa == EsitoStampa.Ok); }
private ParamStampaFoto creaParamStampaFoto(StampanteAbbinata stampanteAbbinata, bool autoZoomNoBordiBianchi) { ParamStampaFoto p = venditoreSrv.creaParamStampaFoto(); p.nomeStampante = stampanteAbbinata.StampanteInstallata.NomeStampante; p.formatoCarta = stampanteAbbinata.FormatoCarta; p.autoZoomNoBordiBianchi = autoZoomNoBordiBianchi; // TODO per ora il nome della Porta a cui è collegata la stampante non lo uso. Non so cosa farci. return(p); }
public void codaDiStampeConAbort() { ParamStampaFoto param = new ParamStampaFoto(); CodaDiStampe c3 = new CodaDiStampe(param, "doPDF v7"); c3.Stop(); c3.EnqueueItem(new LavoroDiStampaFoto(new Fotografia(), new ParamStampaFoto())); // Accodo una stampa in modo da testare l'abort c3.Stop(Threading.PendingItemAction.AbortPendingItems); c3.Dispose(); }
private ParamStampaFoto ricavaParamStampa(string grandezza) { ParamStampaFoto p = new ParamStampaFoto(); p.nomeStampante = "doPDF 9"; LumenEntities dbContext = UnitOfWorkScope.currentDbContext; FormatoCarta formato = dbContext.FormatiCarta.FirstOrDefault(fc => fc.grandezza == grandezza); p.formatoCarta = formato; return(p); }
public void vendiFotoTest() { using (new UnitOfWorkScope(false)) { _impl.creareNuovoCarrello(); ParamStampaFoto p = ricavaParamStampa(); LumenEntities dbContext = UnitOfWorkScope.currentDbContext; List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(QUANTE).ToList(); if (fotos.Count == QUANTE) { contaStampate = 0; _impl.aggiungereStampe(fotos, p); _impl.aggiungereMasterizzate(fotos); _impl.setDatiDischetto(MasterizzaTarget.Cartella, Path.GetTempPath(), 7m); Assert.IsFalse(_impl.carrello.venduto); Assert.IsTrue(_impl.isPossibileSalvareCarrello); Assert.IsTrue(_impl.isPossibileVendereCarrello); Assert.IsTrue(_impl.isPossibileModificareCarrello); _impl.vendereCarrello(); Assert.IsTrue(_impl.carrello.venduto); Assert.IsTrue(_impl.carrello.totaleAPagare == 15 + 7); } } // TODO Qui non funziona e non capisco perché. // Mi va in fail durante la sleep //while( !venditaCompletata ) { // System.Threading.Thread.Sleep( 6000 ); //} // _impl.stop(); Console.WriteLine("FINITO"); }
private void PromoCalcGenerico(int qtaP, int qtaM, int qtaG, decimal prezzoPromoDesiderato) { using (new UnitOfWorkScope(false)) { _impl.creareNuovoCarrello(); ParamStampaFoto paramP = ricavaParamStampa("P"); ParamStampaFoto paramM = ricavaParamStampa("M"); ParamStampaFoto paramG = ricavaParamStampa("G"); Dictionary <string, int> mappa = new Dictionary <string, int> { { "P", qtaP }, { "M", qtaM }, { "G", qtaG } }; int totFoto = mappa.Values.Sum(); LumenEntities dbContext = UnitOfWorkScope.currentDbContext; List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(totFoto).ToList(); // Controllo che ci siano abbastanza foto nel database Assert.IsTrue(fotos.Count == totFoto); contaStampate = 0; int qq = 0; _impl.aggiungereStampe(fotos.Skip(qq).Take(mappa["P"]), paramP); qq += mappa["P"]; _impl.aggiungereStampe(fotos.Skip(qq).Take(mappa["M"]), paramM); qq += mappa["M"]; _impl.aggiungereStampe(fotos.Skip(qq).Take(mappa["G"]), paramG); _impl.ricalcolaTotaleCarrello(); var totPagarePrima = _impl.carrello.totaleAPagare; Carrello cart = _impl.CalcolaPromozioni(true); var totPagareDopo = cart.totaleAPagare; Assert.AreEqual(totPagareDopo, prezzoPromoDesiderato); } Console.WriteLine("FINITO"); }
public void PromoCalTest9() { using (new UnitOfWorkScope()) { _impl.creareNuovoCarrello(); ParamStampaFoto paramM4 = ricavaParamStampa("M"); int totFoto = 12; LumenEntities dbContext = UnitOfWorkScope.currentDbContext; List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(totFoto).ToList(); // Controllo che ci siano abbastanza foto nel database Assert.IsTrue(fotos.Count == totFoto); contaStampate = 0; int qq = 0; // Delle 12 foto, metto solo le prime 4 in stampa. _impl.aggiungereStampe(fotos.Take(4), paramM4); // Poi metto tutte e 12 da masterizzare _impl.aggiungereMasterizzate(fotos); Assert.AreEqual(_impl.carrello.righeCarrello.Count, 4 + 12); _impl.ricalcolaTotaleCarrello(); decimal totalePrePromo = (4 * PRZ_FRM_MED) + (totFoto * PRZ_FRM_FILE); Assert.AreEqual(_impl.carrello.totaleAPagare, totalePrePromo); Carrello cart = _impl.CalcolaPromozioni(true); var totalePostPromo = 0 + (4 * PRZ_FRM_MED) /* 4 stampe a prezzo pieno */ + (3 * 0) /* 3 file in omaggio per il 10+3 */ + (5 * PRZ_FRM_FILE) /* 6 file a prezzo pieno */ + (4 * 1) /* 4 file a prezzo scontato */ ; Assert.AreEqual(cart.totaleAPagare, totalePostPromo, "tot carrello errato x promozioni"); } }
public void PromoCalTest8() { using (new UnitOfWorkScope()) { _impl.creareNuovoCarrello(); ParamStampaFoto paramM2 = ricavaParamStampa("M"); paramM2.numCopie = 2; ParamStampaFoto paramM16 = ricavaParamStampa("M"); paramM16.numCopie = 16; int totFoto = 2; LumenEntities dbContext = UnitOfWorkScope.currentDbContext; List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(totFoto).ToList(); // Controllo che ci siano abbastanza foto nel database Assert.IsTrue(fotos.Count == totFoto); contaStampate = 0; int qq = 0; _impl.aggiungereStampe(fotos[0], paramM2); Assert.AreEqual(_impl.carrello.totaleAPagare, paramM2.numCopie * PRZ_FRM_MED); Assert.AreEqual(_impl.carrello.righeCarrello.Count, 1); _impl.aggiungereStampe(fotos[1], paramM16); Assert.AreEqual(_impl.carrello.righeCarrello.Count, 2); _impl.ricalcolaTotaleCarrello(); var totPagarePrima = _impl.carrello.totaleAPagare; Assert.AreEqual(totPagarePrima, PRZ_FRM_MED * 18); Carrello cart = _impl.CalcolaPromozioni(true); var totPagareDopo = cart.totaleAPagare; Assert.AreEqual(totPagareDopo, PRZ_FRM_MED * 15, "valore carrello errato"); } }
private ParamStampaFoto ricavaParamStampaFoto() { ParamStampaFoto p = new ParamStampaFoto(); // Vediamo se esiste il formato // TODO : creare un nuovo attributo che identifica il formato carta come chiave naturale (per esempio A4 oppure 6x8) LumenEntities dbContext = UnitOfWorkScope.currentDbContext; FormatoCarta formato = Utilita.ottieniFormatoCarta(dbContext, "A5"); formato.prezzo = 5; p.formatoCarta = formato; p.nomeStampante = Costanti.NomeStampantePdf; // Qui non si deve spaccare Digiphoto.Lumen.Database.OrmUtil.forseAttacca <FormatoCarta>(ref formato); return(p); }
public void codaDiStampaTestJoin() { ParamStampaFoto param = new ParamStampaFoto(); // Istanzio una coda di stampa e la chiudo CodaDiStampe c1 = new CodaDiStampe(param, "coda1"); c1.Start(); c1.Stop(); c1.Dispose(); CodaDiStampe c2 = new CodaDiStampe(param, "coda2"); c2.Dispose(); CodaDiStampe c3 = new CodaDiStampe(param, "coda3"); c3.Stop(); c3.Stop(); c3.Dispose(); }
public void PromoAncheFileTest() { using (new UnitOfWorkScope(false)) { LumenEntities dbContext = UnitOfWorkScope.currentDbContext; var psfsf = dbContext.Promozioni.OfType <PromoStessaFotoSuFile>().SingleOrDefault(af => af.attiva == true); if (psfsf == null) { throw new InvalidOperationException("La PromoStessaFotoSuFile non è attiva. Impossibile testare"); } _impl.creareNuovoCarrello(); ParamStampaFoto p = ricavaParamStampa("P"); List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(4).ToList(); Assert.IsTrue(fotos.Count == 4); contaStampate = 0; // Prendo solo i primi 3 elementi _impl.aggiungereStampe(fotos.Take(3), p); _impl.aggiungereMasterizzate(new[] { fotos[0], fotos[3] }); // Solo una foto in promo _impl.carrello.prezzoDischetto = 123; Assert.IsFalse(_impl.carrello.venduto); Assert.IsTrue(_impl.isPossibileSalvareCarrello); Assert.IsTrue(_impl.isPossibileVendereCarrello); Assert.IsTrue(_impl.isPossibileModificareCarrello); var newCart = _impl.CalcolaPromozioni(); Assert.IsTrue(newCart.totaleAPagare == (decimal)((3 * 4.5) + (1 * 1) + (1 * 3.5))); } Console.WriteLine("FINITO"); }
public void PromoCalTest10() { using (new UnitOfWorkScope()) { _impl.creareNuovoCarrello(); ParamStampaFoto paramM = ricavaParamStampa("M"); int totFoto = 12; LumenEntities dbContext = UnitOfWorkScope.currentDbContext; List <Fotografia> fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(totFoto).ToList(); // Controllo che ci siano abbastanza foto nel database Assert.IsTrue(fotos.Count == totFoto); contaStampate = 0; int qq = 0; // Delle 12 foto in stampa. _impl.aggiungereStampe(fotos, paramM); // Poi metto 4 da masterizzare _impl.aggiungereMasterizzate(fotos.Take(4)); Assert.AreEqual(_impl.carrello.righeCarrello.Count, 4 + 12); _impl.ricalcolaTotaleCarrello(); decimal totalePrePromo = (totFoto * PRZ_FRM_MED) + (4 * PRZ_FRM_FILE); Assert.AreEqual(_impl.carrello.totaleAPagare, totalePrePromo); Carrello cart = _impl.CalcolaPromozioni(true); var totalePostPromo = ((12 - 2) * PRZ_FRM_MED) + (4 * 1); Assert.AreEqual(cart.totaleAPagare, totalePostPromo, "tot carrello errato x promozioni"); } }
public void accodaStampaTest() { // EsecutoreStampaNet s = new EsecutoreStampaNet(); const int QUANTE = 1; using (new UnitOfWorkScope()) { ParamStampaFoto param = new ParamStampaFoto(); param.numCopie = 1; param.autoRuota = true; param.nomeStampante = Costanti.NomeStampantePdf; LumenEntities dbContext = UnitOfWorkScope.currentDbContext; var fotos = (from f in dbContext.Fotografie.Include("fotografo") select f).Take(QUANTE); int quanteDavvero = 0; foreach (Fotografia foto in fotos) { ++quanteDavvero; // stampo la stessa foto senza bordi bianchi ... param.autoZoomNoBordiBianchi = true; _impl.accodaStampaFoto(foto, param); // ... poi anche con i bordi bianchi ParamStampaFoto p2 = (ParamStampaFoto)param.Clone(); p2.autoZoomNoBordiBianchi = false; _impl.accodaStampaFoto(foto, p2); } // Attendo che le due stampe siano terminate do { Thread.Sleep(5000); //Assert.Fail( "TODO questo sleep non va bene. occorre sostituire con qualcosa di altro" ); } while(_contaStampe < quanteDavvero * 2); } Assert.IsTrue(_contaErrate == 0); }
public void spaccatoIncassiFotografiTest() { using (new UnitOfWorkScope()) { FormatoCarta formatoCarta = UnitOfWorkScope.currentDbContext.FormatiCarta.First(); ParamStampaFoto paramStampa = new ParamStampaFoto { nomeStampante = "doPDF 9", formatoCarta = formatoCarta, }; _impl.creareNuovoCarrello(); _impl.carrello.prezzoDischetto = (decimal)27.9; // Carico 3 fotografi tra quelli che hanno delle foto var idFotografi = UnitOfWorkScope.currentDbContext.Fotografie.Select(f => f.fotografo).Distinct().Take(3); Fotografo [] arrayF = idFotografi.ToArray(); if (idFotografi.Count() != 3) { return; } string par1 = arrayF[0].id; var fotos1 = UnitOfWorkScope.currentDbContext.Fotografie.Where(f => f.fotografo.id == par1).Take(2).ToList(); string par2 = arrayF[1].id; var fotos2 = UnitOfWorkScope.currentDbContext.Fotografie.Where(f => f.fotografo.id == par2).Take(3).ToList(); string par3 = arrayF[2].id; var fotos3 = UnitOfWorkScope.currentDbContext.Fotografie.Where(f => f.fotografo.id == par3).Take(4).ToList(); paramStampa.numCopie = 1; _impl.aggiungereStampe(fotos1, paramStampa); paramStampa.numCopie = 2; _impl.aggiungereStampe(fotos2, paramStampa); paramStampa.numCopie = 3; _impl.aggiungereStampe(fotos3, paramStampa); _impl.aggiungereMasterizzate(fotos1); _impl.aggiungereMasterizzate(fotos2); _impl.aggiungereMasterizzate(fotos3); string msgEsito = _impl.salvareCarrello(); bool esito = (msgEsito == null); Assert.IsTrue(esito); Carrello cc = _impl.carrello; decimal soldi1 = (fotos1.Count() * 1 * formatoCarta.prezzo); decimal soldi2 = (fotos2.Count() * 2 * formatoCarta.prezzo); decimal soldi3 = (fotos3.Count() * 3 * formatoCarta.prezzo); decimal soldi = soldi1 + soldi2 + soldi3 + (decimal)27.9; // Ora faccio un pò di verifiche Assert.IsTrue(cc.totaleAPagare == soldi); // Il totale da pagare, deve essere la somma degli incassi dei fotografi decimal somma = cc.incassiFotografi.Sum(ii => ii.incasso); Assert.IsTrue(cc.totaleAPagare == somma); // La somma dei ...DI CUI.. deve essere uguale al totale decimal ima = cc.incassiFotografi.Sum(ii => ii.incassoMasterizzate); decimal ist = cc.incassiFotografi.Sum(ii => ii.incassoStampe); Assert.IsTrue(ima + ist == somma); Assert.IsTrue(ima == cc.prezzoDischetto); } }
public void simulaUiStaccando3() { Carrello carrello; String notePrec; String numAggiunto; IVenditoreSrv venditoreSrv; using (new UnitOfWorkScope()) { var context = UnitOfWorkScope.currentDbContext; carrello = context.Carrelli.Include("righeCarrello").Where(c => c.righeCarrello.Count > 0 && c.righeCarrello.Count < 3 && c.venduto == false).FirstOrDefault(); } using (new UnitOfWorkScope()) { var context = UnitOfWorkScope.currentDbContext; venditoreSrv = LumenApplication.Instance.getServizioAvviato <IVenditoreSrv>(); venditoreSrv.caricareCarrello(carrello); // Salvo le note precedenti. notePrec = venditoreSrv.carrello.note; if (notePrec == null) { notePrec = String.Empty; } } bool aggiungiUnaRiga = true; List <Fotografia> fotos = new List <Fotografia>(); ParamStampaFoto par = null; if (aggiungiUnaRiga) { using (new UnitOfWorkScope()) { // Cerco una fotografia a caso IFotoExplorerSrv fotoExplorerSrv = LumenApplication.Instance.getServizioAvviato <IFotoExplorerSrv>(); fotoExplorerSrv.cercaFoto(new ParamCercaFoto { paginazione = new Paginazione { take = 1 } }); var dbContext = UnitOfWorkScope.currentDbContext; par = new ParamStampaFoto { formatoCarta = dbContext.FormatiCarta.First(), nomeStampante = Costanti.NomeStampantePdf }; fotos = fotoExplorerSrv.fotografie; } } using (new UnitOfWorkScope()) { // Modifico l'oggetto da staccato Random rnd = new Random(); int randomNumber = rnd.Next(0, 9); numAggiunto = randomNumber.ToString(); venditoreSrv.carrello.note = venditoreSrv.carrello.note + numAggiunto; if (aggiungiUnaRiga) { venditoreSrv.aggiungereStampe(fotos, par); } } using (new UnitOfWorkScope()) { var context = UnitOfWorkScope.currentDbContext; string msgErrore = venditoreSrv.salvareCarrello(); bool esito = (msgErrore == null); Assert.IsTrue(esito); } using (new UnitOfWorkScope()) { var context = UnitOfWorkScope.currentDbContext; Carrello carrello2 = context.Carrelli.Where(c => c.id == carrello.id).Single(); Assert.AreEqual(carrello2.note, notePrec + numAggiunto); } }