public void DelegateManagerRole_Valid()
        {
            // Arrange
            var expected   = "*****@*****.**";
            var controller = new DepartmentAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.DelegateManagerRole(new DelegationSubmitViewModel()
            {
                RecipientEmail = "*****@*****.**",
                HeadEmail      = "*****@*****.**",
                StartDate      = "Sat Jul 28 00:00:00 GMT + 08:00 2018",
                EndDate        = "Sun Jul 29 00:00:00 GMT+08:00 2018"
            });
            var contentResult = actionResult as OkNegotiatedContentResult <MessageViewModel>;

            // Assert
            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(contentResult.Content.Message, "Successfully delegated");
            Assert.AreEqual(expected, new DelegationService(context).FindAllDelegations().OrderByDescending(d => d.DelegationId).FirstOrDefault().Receipient.Email);
        }
        public void DelegateManagerRole_NotSameDepartment_BadRequest()
        {
            // Arrange
            var controller = new DepartmentAPIController()
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration(),
                Context       = context,
            };

            // Act
            IHttpActionResult actionResult = controller.DelegateManagerRole(new DelegationSubmitViewModel()
            {
                RecipientEmail = "*****@*****.**",
                HeadEmail      = "*****@*****.**",
                StartDate      = "Sat Jul 28 00:00:00 GMT + 08:00 2018",
                EndDate        = "Sun Jul 29 00:00:00 GMT+08:00 2018",
            });
            var badRequestResult = actionResult as BadRequestErrorMessageResult;

            // Assert
            Assert.IsNotNull(badRequestResult);
            Assert.AreEqual("Representative and Department Head not from same Department", badRequestResult.Message);
        }