예제 #1
0
        public void PostCompte_ModelValidated_CreationOK()
        {
            // Arrange
            var rnd    = new Random();
            var number = rnd.Next(1, 1000000000);
            // The email must be unique so we either:
            // 1. add a timestamps/random number
            // 2. we delete the account after (currently not a option)
            var account = new Compte()
            {
                Nom         = "MACHIN",
                Prenom      = "Luc",
                TelPortable = "0606070809",
                Mel         = "machin" + number + "@example.com",
                Pwd         = "Toto1234!",
                Rue         = "Chemin de Bellevue",
                CP          = "74940",
                Ville       = "Annecy-le-Vieux",
                Pays        = "France",
                Latitude    = null,
                Longitude   = null
            };
            // Act
            var got          = _controller.PostCompte(account).Result;
            var actionResult = _controller.GetCompteByEmail(account.Mel).Result;

            // Assert
            Assert.IsInstanceOfType(actionResult.Value, typeof(Compte), "Not an account");
            var expected = _context.Compte.Where(c => c.Mel == account.Mel).FirstOrDefault();

            // We don't know the ID of the created account, because it was generated automatically,
            // so we retrieve it from the newly created entry
            account.CompteId = expected.CompteId;
            Assert.AreEqual(expected, account, "Different accounts");
        }
예제 #2
0
        public void PostCompte_ModelValidated_CreationOK()
        {
            // Arrange
            Random rnd     = new Random();
            int    chiffre = rnd.Next(1, 1000000000);

            // Le mail doit être unique donc 2 possibilités :
            // 1. on s'arrange pour que le mail soit unique en concaténant un random ou un timestamp
            // 2. On supprime le compte après l'avoir créé. Dans ce cas, nous avons besoin d'appeler la méthode DELETE du WS => la décommenter

            Compte compteAtester = new Compte()
            {
                Nom         = "MACHIN",
                Prenom      = "Luc",
                TelPortable = "0606070809",
                Mel         = "machin" + chiffre + "@gmail.com",
                Pwd         = "Toto1234!",
                Rue         = "Chemin de Bellevue",
                CodePostal  = "74940",
                Ville       = "Annecy-le-Vieux",
                Pays        = "France",
                Latitude    = null,
                Longitude   = null
            };

            // Act
            var result = _controller.PostCompte(compteAtester).Result;

            // .Result pour appeler la méthode async de manière synchrone, afin d'obtenir le résultat
            var result2      = _controller.GetCompteByEmail(compteAtester.Mel);
            var actionResult = result2.Result as ActionResult <Compte>;

            // Assert
            Assert.IsInstanceOfType(actionResult.Value, typeof(Compte), "Pas un compte");
            Compte compteRecupere = _context.Compte.Where(c => c.Mel == compteAtester.Mel).FirstOrDefault();

            // On ne connait pas l'ID du compte envoyé car numéro automatique.
            // Du coup, on récupère l'ID de celui récupéré et on compare ensuite les 2 comptes
            compteAtester.CompteId = compteRecupere.CompteId;
            Assert.AreEqual(compteRecupere, compteAtester, "Comptes pas identiques");
        }