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"); }
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"); }