public override void Given()
        {
            this.TableStorageContext = new Mock<ITableStorageContext> { DefaultValue = DefaultValue.Mock };

            var tableStorageContextFactory = new TableStorageContextFactoryMockBuilder()
                .SetTableStorageContext(this.TableStorageContext)
                .Build();

            var authenticationHelper = new Mock<IAuthenticationHelper>();
            authenticationHelper.Setup(x => x.NameIdentifier).Returns(TestValues.NAME_IDENTIFIER);

            var cardsBatchController = new CardsBatchController(tableStorageContextFactory.Object, authenticationHelper.Object);
            var apiControllerBuilder = new ApiControllerBuilder<CardsBatchController>(cardsBatchController);

            this.CardsBatchController = apiControllerBuilder
                .CreateRequest(HttpMethod.Put, TestUrls.CARDS)
                .Build();
        }
예제 #2
0
        public async void should_send_email()
        {
            //arrange
            var controllerContext = new Mock <ControllerContext>();
            var httpContext       = new Mock <HttpContextBase>();
            var httpRequest       = new Mock <HttpRequestBase>();

            controllerContext.Setup(x => x.HttpContext).Returns(httpContext.Object);
            httpContext.Setup(x => x.Request).Returns(httpRequest.Object);

            var headers = new NameValueCollection {
                { ConstHelper.Authorization, "token" }
            };

            httpRequest.Setup(x => x.Headers).Returns(headers);

            const string actionName = "SendEmail";
            const string email      = "*****@*****.**";
            const string subject    = "subject";
            const string htmlBody   = "htmlBody";

            var messageService = new Mock <IMessageService>();

            messageService.Setup(x => x.SendEmail(email, subject, htmlBody)).Returns(Task.FromResult(new SendEmailResponse()));

            //act
            var sut = new ApiControllerBuilder().WithMessageService(messageService.Object).Build();

            sut.ControllerContext = controllerContext.Object;

            var result = await sut.SendEmail(email, subject, htmlBody);

            //assert
            Assert.IsNotNull(result);
            Assert.IsAssignableFrom <JsonResult>(result);

            messageService.Verify(x => x.SendEmail(email, subject, htmlBody), Times.Once);

            sut.AssertPostAttributeWithOutAntiForgeryToken(actionName, new[] { typeof(string), typeof(string), typeof(string) });
            sut.AssertValidateInputAttribute(actionName, new[] { typeof(string), typeof(string), typeof(string) });
        }