public void TestsIsReplyToValidForNull()
        {
            int memberId = 3;
            int toId     = 2;
            var mails    = new List <Mail>()
            {
                new Mail()
                {
                    Id          = 2,
                    FromId      = memberId,
                    ToId        = toId,
                    ReplyToMail = 10,
                }
            }.AsQueryable();

            var mailsSetMock = new Mock <DbSet <Mail> >();

            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.Provider).Returns(mails.Provider);
            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.Expression).Returns(mails.Expression);
            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.ElementType).Returns(mails.ElementType);
            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.GetEnumerator()).Returns(mails.GetEnumerator());
            mailsSetMock.Setup(m => m.AsNoTracking()).Returns(mailsSetMock.Object);

            var entitiesMock = new Mock <IHellolingoEntities>();

            entitiesMock.Setup(e => e.Mails).Returns(mailsSetMock.Object);

            var validator = new MailBoxValidator(entitiesMock.Object);

            var result = validator.IsReplyToValid(null, memberId, toId);

            Assert.AreEqual(result.Value, true);
        }
        private void TestUserPositiveStatus(byte status)
        {
            int memberId = 3;
            var users    = new List <User>()
            {
                new User()
                {
                    Id     = memberId,
                    Status = new UsersStatus()
                    {
                        Id = status,
                    },
                }
            }.AsQueryable();

            var usersSetMock = new Mock <DbSet <User> >();

            usersSetMock.As <IQueryable <User> >().Setup(m => m.Provider).Returns(users.Provider);
            usersSetMock.As <IQueryable <User> >().Setup(m => m.Expression).Returns(users.Expression);
            usersSetMock.As <IQueryable <User> >().Setup(m => m.ElementType).Returns(users.ElementType);
            usersSetMock.As <IQueryable <User> >().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());
            usersSetMock.Setup(m => m.AsNoTracking()).Returns(usersSetMock.Object);

            var entitiesMock = new Mock <IHellolingoEntities>();

            entitiesMock.Setup(e => e.Users).Returns(usersSetMock.Object);

            var validator = new MailBoxValidator(entitiesMock.Object);

            var result = validator.IsRecipientValid(memberId);

            Assert.AreEqual(result.Value, true);
        }
        private void TestSendingToDeletedUser()
        {
            int memberId = 3;
            var users    = new List <User> {
                new User {
                    Id = memberId, Status = new UsersStatus()
                    {
                        Id = UserStatuses.Deleted
                    }
                }
            }.AsQueryable();

            var usersSetMock = new Mock <DbSet <User> >();

            usersSetMock.As <IQueryable <User> >().Setup(m => m.Provider).Returns(users.Provider);
            usersSetMock.As <IQueryable <User> >().Setup(m => m.Expression).Returns(users.Expression);
            usersSetMock.As <IQueryable <User> >().Setup(m => m.ElementType).Returns(users.ElementType);
            usersSetMock.As <IQueryable <User> >().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());
            usersSetMock.Setup(m => m.AsNoTracking()).Returns(usersSetMock.Object);

            var entitiesMock = new Mock <IHellolingoEntities>();

            entitiesMock.Setup(e => e.Users).Returns(usersSetMock.Object);

            var validator = new MailBoxValidator(entitiesMock.Object);

            var result = validator.IsRecipientValid(memberId);

            Assert.AreEqual(true, result.Value);
            Assert.AreEqual(result.Reports[0].Tag, LogTag.MailToDeletedUser);
        }
        public void TestIsUserMessageFailed()
        {
            int memberId  = 3;
            int messageId = 5;
            var mails     = new List <Mail>()
            {
                new Mail {
                    Id          = 5,
                    ReplyToMail = 10,
                    FromId      = 10,
                    ToId        = 6,
                }
            }.AsQueryable();

            var mailsSetMock = new Mock <DbSet <Mail> >();

            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.Provider).Returns(mails.Provider);
            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.Expression).Returns(mails.Expression);
            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.ElementType).Returns(mails.ElementType);
            mailsSetMock.As <IQueryable <Mail> >().Setup(m => m.GetEnumerator()).Returns(mails.GetEnumerator());
            mailsSetMock.Setup(m => m.AsNoTracking()).Returns(mailsSetMock.Object);

            var entitiesMock = new Mock <IHellolingoEntities>();

            entitiesMock.Setup(e => e.Mails).Returns(mailsSetMock.Object);

            var validator = new MailBoxValidator(entitiesMock.Object);

            var result = validator.IsValidOwner(messageId, memberId);

            Assert.AreEqual(result.Value, false);
        }