예제 #1
0
        public async void AjouterTransactionAvecPaiement()
        {
            //1ère étape : configuration des mocks pour qu'ils retournes les bons objets
            Pompe pompe = new Pompe {
                Id = 1
            };

            _mockPompeRepository.Setup(x => x.GetByIdWithRéservoirAsync(pompe.Id)).ReturnsAsync(pompe);
            Transaction transaction = new Transaction {
                Id = 1
            };

            transaction.Pompe        = pompe;
            transaction.PrixUnitaire = 1.0M;
            transaction.Volume       = 50.0M;
            _mockTransactionRepository.Setup(x => x.GetByIdWithPaiementsAsync(transaction.Id)).ReturnsAsync(transaction);

            //2ème étape : appeler le service
            TransactionService service = new TransactionService(_mockTransactionRepository.Object, null);
            await service.AddTransactionAsync(transaction);

            Paiement paiement = new PaiementEspèce(50, transaction);
            await service.AddPaiementAsync(transaction.Id, paiement);

            //3ème étape: vérifier les appels aux repositories
            _mockTransactionRepository.Verify(x => x.AddAsync(transaction), Times.Once);
            _mockTransactionRepository.Verify(x => x.GetByIdWithPaiementsAsync(1), Times.Once);
            _mockTransactionRepository.Verify(x => x.UpdateAsync(transaction), Times.Once);
            _mockTransactionRepository.VerifyNoOtherCalls();

            //4éme étape: vérifier les valeurs finales
            Assert.Single(transaction.Paiements);
            Assert.Equal(50.0M, transaction.MontantTotal());
            Assert.Equal(true, transaction.EstPayée());
        }
예제 #2
0
        public bool Put(Pompe myPompe)
        {
            using (var db = new StationContext())
            {
                myPompe.LastEditDate = DateTime.Now;

                db.Pompes.Attach(myPompe);
                db.Entry(myPompe).State = EntityState.Modified;
                return(db.SaveChanges() > 0);
            }
        }
예제 #3
0
        public Form1()
        {
            InitializeComponent();
            linda      = new Linda();
            capteurH20 = new Thread(agentCapteurH20);
            capteurC0  = new Thread(agentCapteurC0);
            capteurCH4 = new Thread(agentCapteurCH4);

            pompe       = new Pompe(linda);
            pompeThread = new Thread(new ThreadStart(pompe.agentPompe));

            ventilateur       = new Ventilateur(linda);
            ventilateurThread = new Thread(new ThreadStart(ventilateur.agentVentilateur));

            H2O_seuil_haut h = new H2O_seuil_haut(linda);

            h2O_seuil_haut = new Thread(h.agent_H2O_seuil_haut);

            Detection_gaz_bas d = new Detection_gaz_bas(linda);

            detection_gaz_bas = new Thread(d.agent_detection_gaz_bas);


            CommandePompeVentilo cpv = new CommandePompeVentilo(linda);

            commandePompeVentilo = new Thread(cpv.agentCommandePompeVentilo);

            Surveillance_gaz_haut sgh = new Surveillance_gaz_haut(linda);

            surveillance_gaz_haut = new Thread(sgh.agentSurveillance_gaz_haut);

            H2O_seuil_bas hb = new H2O_seuil_bas(linda);

            h2O_seuil_bas = new Thread(hb.agent_H2O_seuil_bas);


            try{
                H2OSeuilBasTextBox.Text  = linda.lindaReadP("value_Seuil_H2O_Bas").Arguments.Split(',')[1];
                COSeuilBasTextBox.Text   = linda.lindaReadP("value_Seuil_CO_Bas").Arguments.Split(',')[1];
                CH4SeuilBasTextBox.Text  = linda.lindaReadP("value_Seuil_CH4_Bas").Arguments.Split(',')[1];
                H2OSeuilHautTextBox.Text = linda.lindaReadP("value_Seuil_H2O_Haut").Arguments.Split(',')[1];
                COSeuilHautTextBox.Text  = linda.lindaReadP("value_Seuil_CO_Haut").Arguments.Split(',')[1];
                CH4SeuilHautTextBox.Text = linda.lindaReadP("value_Seuil_CH4_Haut").Arguments.Split(',')[1];
                H2OValueTextBox.Text     = linda.lindaReadP("niveau_H2O").Arguments.Split(',')[1];
                COValueTextBox.Text      = linda.lindaReadP("niveau_CO").Arguments.Split(',')[1];
                CH4ValueTextBox.Text     = linda.lindaReadP("niveau_CH4").Arguments.Split(',')[1];
            }
            catch (Exception e) {
                Console.WriteLine(e);
            }


            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_Closing);
        }
예제 #4
0
        public PompeCard(Pompe pompe)
        {
            PompeGuid = pompe.PompeGuid;
            Libel     = pompe.Libel;
            Fuel      = pompe.Citerne.Fuel.Libel;

            var prelev = pompe.Prelevements.OrderByDescending(p => p.DatePrelevement).FirstOrDefault();

            LastPrelevement = prelev?.DatePrelevement.GetValueOrDefault().Humanize(false);

            Meter  = prelev?.Meter.ToString("0.##");
            Result = prelev?.Result.ToString("0.## 'Litres'");
        }
예제 #5
0
        public bool Post(Pompe myPompe)
        {
            using (var db = new StationContext())
            {
                if (!db.Citernes.Any(f => f.CiterneGuid == myPompe.CiterneGuid))
                {
                    throw new InvalidOperationException("CITERNE_REFERENCE_NOT_FOUND");
                }


                if (myPompe.PompeGuid == Guid.Empty)
                {
                    myPompe.PompeGuid = Guid.NewGuid();
                }

                myPompe.DateAdded    = DateTime.Now;
                myPompe.LastEditDate = DateTime.Now;

                db.Pompes.Add(myPompe);
                return(db.SaveChanges() > 0);
            }
        }
예제 #6
0
        public void ApprovisionnerTest()
        {
            //initialisation
            float           contenance       = 5000;
            float           retrait          = 1000;
            float           contenanceFinale = 4000;
            int             prixTest         = 1;
            float           prixSuppose      = retrait * prixTest;
            Cuve            cuve             = new Cuve(Carburant.Diesel, 10000, contenance, prixTest);
            Pistolet        pistolet         = new Pistolet(cuve);
            List <Pistolet> list             = new List <Pistolet>();

            list.Add(pistolet);
            Pompe pompe = new Pompe(Vehicule.Autres, list);

            //approvisionnement
            float prixReel = pompe.Approvisionner(pistolet, retrait);

            //assert
            //Note : le test peut echouer suite à une panne aleatoire de la pompe, pistolet ou cuve.
            //       Plusieurs executions necessaires
            Assert.AreEqual(contenanceFinale, cuve.Contenance);
            Assert.AreEqual(prixSuppose, prixReel);
        }