Пример #1
0
        public void CreerMembre_IDCarteRegistreNationalException()
        {
            // Arrange
            var context = InitializeContext();
            var idCarte = new CreerMembreRequete.IDCarte
            {
                Nom              = "Test",
                Prenom           = "Test",
                DateExpiration   = new DateTime(2030, 7, 29),
                DateValidation   = new DateTime(2017, 7, 29),
                DateNaissance    = new DateTime(1995, 7, 29),
                RegistreNational = "123",
                NumeroCarte      = 1111
            };

            var requete = new CreerMembreRequete()
            {
                Email         = "*****@*****.**",
                CarteIdentite = idCarte
            };

            InjectClassFor(context);

            // Act
            Action action = () => ClassUnderTest.CreerMembre(requete);

            // Assert
            action
            .Should()
            .ThrowExactly <CustomBadRequestException>()
            .WithMessage(MessageErreur.FormatRegistreNationalInvalide);
        }
Пример #2
0
        public void CreerMembre_AgeMinimumException()
        {
            // Arrange
            var context = InitializeContext();
            var idCarte = new CreerMembreRequete.IDCarte
            {
                Nom              = "Test",
                Prenom           = "Test",
                DateValidation   = new DateTime(2018, 7, 29),
                DateNaissance    = new DateTime(2004, 7, 29),
                DateExpiration   = new DateTime(2030, 7, 29),
                RegistreNational = "95.07.19-111.26",
                NumeroCarte      = 1111
            };

            var requete = new CreerMembreRequete()
            {
                Email         = "*****@*****.**",
                CarteIdentite = idCarte
            };

            InjectClassFor(context);

            // Act
            Action action = () => ClassUnderTest.CreerMembre(requete);

            // Assert
            action
            .Should()
            .ThrowExactly <CustomBadRequestException>()
            .WithMessage(MessageErreur.AgeMinimumRequis);
        }
Пример #3
0
        public void CreerMembre_EmailEtTelException()
        {
            // Arrange
            var requete = new CreerMembreRequete()
            {
            };

            // Act
            Action action = () => ClassUnderTest.CreerMembre(requete);

            // Assert
            action
            .Should()
            .ThrowExactly <CustomBadRequestException>()
            .WithMessage(MessageErreur.EmailEtTelephoneNonInvalide);
        }
Пример #4
0
        public void CreerMembre_EmailFormatException()
        {
            // Arrange
            var requete = new CreerMembreRequete()
            {
                Email = "jade"
            };

            // Act
            Action action = () => ClassUnderTest.CreerMembre(requete);

            // Assert
            action
            .Should()
            .ThrowExactly <CustomBadRequestException>()
            .WithMessage(MessageErreur.FormatEmailInvalide);
        }
Пример #5
0
        public void CreerMembre_Success()
        {
            // Arrange
            var context = InitializeContext();
            var idCarte = new CreerMembreRequete.IDCarte
            {
                Nom              = "Test",
                Prenom           = "Test",
                DateValidation   = new DateTime(2018, 7, 29),
                DateNaissance    = new DateTime(2000, 7, 29),
                DateExpiration   = new DateTime(2030, 7, 29),
                RegistreNational = "95.07.19-111.26",
                NumeroCarte      = 1111
            };

            var requete = new CreerMembreRequete()
            {
                Email         = "*****@*****.**",
                CarteIdentite = idCarte
            };

            InjectClassFor(context);

            // Act
            var result = ClassUnderTest.CreerMembre(requete);

            // Assert
            result
            .Email
            .Should()
            .Be("*****@*****.**");
            result
            .CarteIdentites
            .First()
            .RegistreNational
            .Should()
            .Be("95.07.19-111.26");
        }
Пример #6
0
        public Core.Domaines.Membre CreerMembre(CreerMembreRequete requete)
        {
            if (requete == null)
            {
                throw new CustomBadRequestException(MessageErreur.RequeteNull);
            }

            if (String.IsNullOrEmpty(requete.Telephone) && String.IsNullOrEmpty(requete.Email))
            {
                throw new CustomBadRequestException(MessageErreur.EmailEtTelephoneNonInvalide);
            }

            if (!String.IsNullOrEmpty(requete.Email))
            {
                string pattern    = @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z";
                var    regexMatch = Regex.Match(requete.Email, pattern);
                if (!regexMatch.Success)
                {
                    throw new CustomBadRequestException(MessageErreur.FormatEmailInvalide);
                }
            }

            if (!String.IsNullOrEmpty(requete.Telephone))
            {
                string pattern    = @"^0[0-9]{9}$";
                var    regexMatch = Regex.Match(requete.Telephone, pattern);
                if (!regexMatch.Success)
                {
                    throw new CustomBadRequestException(MessageErreur.FormatTelephoneInvalide);
                }
            }
            var idCarteExistant = _context.IDCartes.SingleOrDefault(x => x.RegistreNational == requete.CarteIdentite.RegistreNational);

            if (idCarteExistant != null)
            {
                throw new CustomNotFoundException(MessageErreur.RegistreNationalDejaExistant);
            }

            var nouvelleIDCarte = new IDCarte
            {
                Nom              = requete.CarteIdentite.Nom,
                Prenom           = requete.CarteIdentite.Nom,
                DateNaissance    = requete.CarteIdentite.DateNaissance,
                RegistreNational = requete.CarteIdentite.RegistreNational,
                DateValidation   = requete.CarteIdentite.DateValidation,
                DateExpiration   = requete.CarteIdentite.DateExpiration,
                NumeroCarte      = requete.CarteIdentite.NumeroCarte
            };

            ValidationCarteIdentite(nouvelleIDCarte);

            var nouvelleCarteMembre = new MembreCarte
            {
                Code     = Guid.NewGuid().ToString(),
                IsActive = true
            };

            var nouveauMembre = new Core.Domaines.Membre
            {
                Email                = requete.Email,
                Telephone            = requete.Telephone,
                IsBlacklister        = false,
                DebutDateBlacklister = new DateTime(),
                FinDateBlacklister   = new DateTime(),
                CarteIdentites       = new List <IDCarte>()
                {
                    nouvelleIDCarte
                },
                MembreCartes = new List <MembreCarte>()
                {
                    nouvelleCarteMembre
                }
            };

            _context.Membres.Add(nouveauMembre);
            _context.SaveChanges();
            return(nouveauMembre);
        }
Пример #7
0
        public ActionResult CreateMember([FromBody] CreerMembreRequete requete)
        {
            var membre = _membreService.CreerMembre(requete);

            return(Ok(membre));
        }