Esempio n. 1
0
        public ActionResult BlacklisterMembre([FromRoute] int membreId, [FromBody] BlacklisterMembreRequete requete)
        {
            requete.MembreId = membreId;
            var membre = _membreService.BlacklisterMembre(requete);

            return(Ok(membre));
        }
Esempio n. 2
0
        public void BlacklisterMembre_Success()
        {
            // Arrange
            var context = InitializeContext();
            var membre  = fixture.Build <Membre>().With(x => x.Id, 3).With(x => x.IsBlacklister, false).Create();
            var requete = new BlacklisterMembreRequete
            {
                MembreId             = 3,
                DebutDateBlacklister = new DateTime(2020, 10, 22),
                FinDateBlacklister   = new DateTime(2021, 7, 29)
            };

            context.Membres.Add(membre);
            context.SaveChanges();
            InjectClassFor(context);

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

            // Assert
            result.Id
            .Should()
            .Be(3);

            result.IsBlacklister
            .Should()
            .Be(true);

            result.FinDateBlacklister
            .Should()
            .Be(new DateTime(2021, 7, 29));
        }
Esempio n. 3
0
        public void BlacklisterMembre_DejaBlacklisterException()
        {
            // Arrange
            var context = InitializeContext();
            var membre  = fixture.Build <Membre>().With(x => x.Id, 1).With(x => x.IsBlacklister, true).Create();
            var requete = new BlacklisterMembreRequete
            {
                MembreId             = 1,
                DebutDateBlacklister = new DateTime(2020, 10, 22),
                FinDateBlacklister   = new DateTime(2021, 7, 29)
            };

            context.Membres.Add(membre);
            context.SaveChanges();
            InjectClassFor(context);

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

            // Assert
            action
            .Should()
            .ThrowExactly <CustomBadRequestException>()
            .WithMessage(MessageErreur.MembreDejaBlackliste);
        }
Esempio n. 4
0
        public void BlacklisterMembre_DateDebutBlacklistInferieurDateFinBlacklistException()
        {
            // Arrange
            var context = InitializeContext();
            var membre  = fixture.Build <Membre>().With(x => x.Id, 15).With(x => x.IsBlacklister, false).Create();
            var requete = new BlacklisterMembreRequete
            {
                MembreId             = 15,
                DebutDateBlacklister = new DateTime(2030, 10, 22),
                FinDateBlacklister   = new DateTime(2030, 7, 29)
            };

            context.Membres.Add(membre);
            InjectClassFor(context);

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

            // Assert
            action
            .Should()
            .ThrowExactly <CustomBadRequestException>()
            .WithMessage(MessageErreur.DateBlacklistingInvalide);
        }
Esempio n. 5
0
        public void BlacklisterMembre_MembreInexistantException()
        {
            // Arrange
            var context = InitializeContext();
            var requete = new BlacklisterMembreRequete
            {
                MembreId             = 1,
                DebutDateBlacklister = new DateTime(2020, 10, 22),
                FinDateBlacklister   = new DateTime(2021, 7, 29)
            };

            InjectClassFor(context);

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

            // Assert
            action
            .Should()
            .ThrowExactly <CustomNotFoundException>()
            .WithMessage(MessageErreur.MembreIntrouvable);
        }
Esempio n. 6
0
        public Core.Domaines.Membre BlacklisterMembre(BlacklisterMembreRequete requete)
        {
            if (requete == null)
            {
                throw new CustomBadRequestException(MessageErreur.RequeteNull);
            }

            if (DateTime.Compare(requete.DebutDateBlacklister, requete.FinDateBlacklister) > 0)
            {
                throw new CustomBadRequestException(MessageErreur.DateBlacklistingInvalide);
            }

            if (DateTime.Compare(requete.FinDateBlacklister, DateTime.Today) < 0)
            {
                throw new CustomBadRequestException(MessageErreur.DateFinBlacklistInferieur);
            }

            var membreBlacklister = _context.Membres.SingleOrDefault(x => x.Id == requete.MembreId);

            if (membreBlacklister == null)
            {
                throw new CustomNotFoundException(MessageErreur.MembreIntrouvable);
            }
            if (membreBlacklister.IsBlacklister)
            {
                throw new CustomBadRequestException(MessageErreur.MembreDejaBlackliste);
            }

            membreBlacklister.IsBlacklister        = true;
            membreBlacklister.DebutDateBlacklister = requete.DebutDateBlacklister;
            membreBlacklister.FinDateBlacklister   = requete.FinDateBlacklister;

            _context.Membres.Update(membreBlacklister);
            _context.SaveChanges();
            return(membreBlacklister);
        }