Esempio n. 1
0
        private async Task CreateUser(string username, string password, string role, string firstName = "", string lastName = "")
        {
            DateTime dateCreated      = DateTime.Now;
            DateTime lastModifiedDate = DateTime.Now;

            var user = new LeaveNotifierUser()
            {
                UserName         = username,
                Email            = username + "@kyoceraleaves.com",
                CreatedDate      = dateCreated,
                LastModifiedDate = lastModifiedDate,
                FirstName        = firstName,
                LastName         = lastName
            };

            if (await _userManager.FindByIdAsync(user.UserName) == null)
            {
                await _userManager.CreateAsync(user, password);

                await _userManager.AddToRoleAsync(user, role);

                await _userManager.AddClaimAsync(user, new Claim(role == Role.ADMINISTRATOR ? "SuperUser" : "RegularUser", "True"));

                user.EmailConfirmed = true;
                user.LockoutEnabled = false;
            }
        }
        public void Get_ReturnsOkResult_WithTheListOfAllTheLeaves()
        {
            // Arrange
            var leaves = GetLeaves();
            // Mock the Repo
            var mockRepo = new Mock <ILeaveNotifierRepository>();

            mockRepo.Setup(repo => repo.GetAllLeaves()).Returns(leaves);

            // Mock the User
            var user = new LeaveNotifierUser()
            {
                UserName  = "******",
                FirstName = "Sudyok",
                LastName  = "Mati"
            };
            var mockUserManager = CommonMocks.GetUserManagerMock();

            mockUserManager.Setup(userMgr => userMgr.FindByNameAsync(user.UserName)).ReturnsAsync(user);

            // Mock the Logger
            var mockLogger = new Mock <ILogger <LeavesController> >();

            // Use real Mapper
            var mapperConfig = new MapperConfiguration(cfg => {
                cfg.AddProfile(new LeaveMappingProfile());
            });
            var mapper = mapperConfig.CreateMapper();

            // Initialize the controller
            var controller = new LeavesController(mockRepo.Object, mockUserManager.Object, mockLogger.Object, mapper);

            // Act
            var query  = new QueryModel <Leave>();
            var result = controller.Get(query);

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);
            var model    = Assert.IsAssignableFrom <IEnumerable <LeaveModel> >(okResult.Value);

            Assert.Equal(2, model.Count());
        }