public void AssignManagerToBranch_Should_SetWorkAtIdPropertyToSuppliedBranchId_And_CreateManagerAtBranchHistory_And_ReturnOkObjectResult_When_ModelStateIsValid()
        {
            // Arrange
            var workerAtBranch = new WorkerAtBranchDto
            {
                WorkerId = 4,
                BranchId = 1
            };

            var currentUser = new ApplicationUser {
                Id = 1
            };
            var claims = new List <Claim> {
                new Claim(CustomClaimTypes.UserId, currentUser.Id.ToString())
            };
            var identity        = new ClaimsIdentity(claims);
            var claimsPrincipal = new ClaimsPrincipal(identity);
            var context         = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = claimsPrincipal
                }
            };

            _sut.ControllerContext = context;

            // Act
            var okResult = _sut.AssignManagerToBranch(workerAtBranch) as OkResult;

            // Assert
            Assert.IsNotNull(okResult);

            var managerFromDb = _context.Managers.SingleOrDefault(m => m.Id == workerAtBranch.WorkerId);

            Assert.IsNotNull(managerFromDb);
            Assert.AreEqual(workerAtBranch.BranchId, managerFromDb.WorkAtId);

            var managerAtBranchFromDb = _context.ManagerAtBranchHistory.Where(m => m.ManagerId == workerAtBranch.WorkerId).ToList().LastOrDefault();

            Assert.IsNotNull(managerAtBranchFromDb);
            Assert.IsNotNull(managerAtBranchFromDb.AssignDate);
            Assert.IsNull(managerAtBranchFromDb.ExpelDate);
            Assert.IsNull(managerAtBranchFromDb.ExpelledById);
            Assert.AreEqual(currentUser.Id, managerAtBranchFromDb.AssignedById);
            Assert.AreEqual(workerAtBranch.BranchId, managerAtBranchFromDb.BranchId);
            Assert.AreEqual(workerAtBranch.WorkerId, managerAtBranchFromDb.ManagerId);
        }