Пример #1
0
        public async Task TestPostMessageFailed1()
        {
            //MemberIdTo is invalid
            //ReplyIdTo is Invalid

            HellolingoMailMessage model = new HellolingoMailMessage()
            {
                MemberIdTo = 1,
                ReplyTo    = null,
                Text       = "Hello there!"
            };

            int currentUserId = 5;

            var entitytiesMock = new Mock <IHellolingoEntities>();

            entitytiesMock.Setup(e => e.Mails_Insert(It.IsAny <byte?>(), It.IsAny <int?>(), It.IsAny <long?>(), It.IsAny <int?>(), It.IsAny <string>(), It.IsAny <string>()));

            var mailValidatorMock = new Mock <IMailBoxValidator>();

            var controller = new MailBoxController(entitytiesMock.Object, mailValidatorMock.Object);

            controller.User = new GenericPrincipal(new ClaimsIdentity(new[] {
                new Claim(CustomClaimTypes.UserId, currentUserId.ToString())
            }), null);

            mailValidatorMock.Setup(v => v.IsReplyToValid(It.IsAny <int?>(), It.IsAny <int>(), It.IsAny <int>())).Returns(Result <bool> .True);
            mailValidatorMock.Setup(v => v.IsRecipientValid(It.IsAny <int>())).Returns(Result <bool> .True);

            await controller.PostMessage(model);

            await controller.PostMessage(model);

            entitytiesMock.Verify(v => v.Mails_Insert(It.IsAny <byte?>(),
                                                      It.IsAny <int?>(),
                                                      It.IsAny <long?>(),
                                                      It.IsAny <int?>(),
                                                      It.IsAny <string>(),
                                                      It.IsAny <string>()), Times.Exactly(2));
        }
Пример #2
0
        public async Task TestPostMessageSuccess()
        {
            //MemberIdTo is valid
            //ReplyIdTo is valid

            HellolingoMailMessage model = new HellolingoMailMessage()
            {
                MemberIdTo = 1,
                ReplyTo    = null,
                Text       = "Hello there!"
            };

            int currentUserId = 5;

            var entitytiesMock = new Mock <IHellolingoEntities>();

            entitytiesMock.Setup(e => e.Mails_Insert(It.IsAny <byte?>(), It.IsAny <int?>(), It.IsAny <long?>(), It.IsAny <int?>(), It.IsAny <string>(), It.IsAny <string>()));

            var mailValidatorMock = new Mock <IMailBoxValidator>();

            var controller = new MailBoxController(entitytiesMock.Object, mailValidatorMock.Object);

            controller.User = new GenericPrincipal(new ClaimsIdentity(new [] {
                new Claim(CustomClaimTypes.UserId, currentUserId.ToString())
            }), null);

            mailValidatorMock.Setup(v => v.IsReplyToValid(It.IsAny <int?>(), It.IsAny <int>(), It.IsAny <int>())).Returns(Result <bool> .True);
            mailValidatorMock.Setup(v => v.IsRecipientValid(It.IsAny <int>())).Returns(Result <bool> .True);

            await controller.PostMessage(model);

            entitytiesMock.Verify(v => v.Mails_Insert(It.Is((byte?reg) => reg == MailRegulationStatuses.PassAndReview),
                                                      It.Is((int?p) => p == currentUserId),
                                                      It.Is((long?p) => p == model.ReplyTo),
                                                      It.Is((int?p) => p == model.MemberIdTo),
                                                      It.Is((string p) => p == null),
                                                      It.Is((string p) => p == model.Text)), Times.Once);
        }
Пример #3
0
        public void SetUp()
        {
            mockProvider = new Mock <IProvider>();
            connection   = new SqliteConnection("DataSource=:memory:");
            connection.Open();
            var options = new DbContextOptionsBuilder <JanuszMailDbContext>().UseSqlite(connection).Options;

            mockDbContext = new JanuszMailDbContext(options);
            mockDbContext.Database.Migrate();
            mockUserManager = new Mock <FakeUserManager>();
            controller      = new MailBoxController(mockProvider.Object, mockUserManager.Object, mockDbContext);
            fakeUser        = new ApplicationUser()
            {
                Id = "user1"
            };
            mockUserManager.Setup(Manager => Manager.GetUserAsync(It.IsAny <ClaimsPrincipal>())).Returns(Task.FromResult(fakeUser));

            urlHelper = new Mock <IUrlHelper>();
            urlHelper.Setup(x => x.Link(It.IsAny <string>(), It.IsAny <object>())).Returns("http://localhost");
            controller.Url = urlHelper.Object;
            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            controller.HttpContext.Session           = new MockSession();
            controller.TempData = new TempDataDictionary(new Mock <HttpContext>().Object, new Mock <ITempDataProvider>().Object);
        }