Esempio n. 1
0
        public async void 管理ユーザーを登録()
        {
            // Arrange
            var viewModel = new RegisterViewModel()
            {
                Name             = "管理太郎",
                SelectedRoleName = "Administrator",
                EmailAddress     = "*****@*****.**",
                LoginId          = "testloginid"
            };

            var mockOperatorUseCase       = new Mock <IOperatorUseCase>();
            var mockaAuthorizationUseCase = new Mock <IAuthorizationUseCase>();

            mockaAuthorizationUseCase
            .Setup(o => o.AddAuthorizationLink("testloginid"))
            .ReturnsAsync(new AuthorizationLink("C12345", DateTime.Now))
            .Verifiable();
            var mockUserManage = this.GetMockUserManager();
            var mockUrlHelper  = MockMaker.MakeIUrlHelper();
            var controller     = new OperatorsController(mockOperatorUseCase.Object, mockaAuthorizationUseCase.Object, mockUserManage.Object)
            {
                Url = mockUrlHelper.Object
            };

            // Act
            var result = await controller.Register(viewModel);

            // Assert
            mockOperatorUseCase.Verify(o => o.RegisterOperator("管理太郎", "*****@*****.**", "testloginid"), Times.Once);
            mockOperatorUseCase.Verify(o => o.SendOperatorInvitaionMail("*****@*****.**", It.Is <string>(p => p.Contains("authorizationCode"))), Times.Once);
            mockaAuthorizationUseCase.Verify();
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal(nameof(controller.Index), redirectToActionResult.ActionName);
        }