Esempio n. 1
0
        public async Task TravelRequestsController_Update_Test()
        {
            bool called = false;
            var  travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
            var  employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();

            var updateTravelRequests = new TravelRequest()
            {
                TravelRequestId = 1,
            };

            travelRequestsRepository.UpdateAsyncTravelRequest = (TravelRequest) =>
            {
                Assert.IsTrue(updateTravelRequests.TravelRequestId == TravelRequest.TravelRequestId);
                called = true;

                return(Task.FromResult(string.Empty));
            };

            var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
            await target.Update(updateTravelRequests);

            Assert.IsTrue(called);
        }
Esempio n. 2
0
        public async Task EmployeeController_GetLoggedEmployeeInfo_Test()
        {
            var ADGraphAPI         = new Web.Security.Fakes.StubIADGraphApi();
            var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            employeeRepository.GetByEmailAsyncStringPictureType = (email, pictureType) =>
            {
                return(Task.FromResult(new Employee()
                {
                    EmployeeId = 10
                }));
            };

            ADGraphAPI.IsInGroupStringString = (userName, groupName) =>
            {
                return(true);
            };

            var target = new EmployeesController(employeeRepository, new SecurityHelper(), ADGraphAPI);
            var result = await target.GetLoggedEmployeeInfo(Model.PictureType.Small);

            Assert.IsNotNull(result);
            Assert.AreEqual(10, result.EmployeeId);
            Assert.IsTrue(result.IsRRHH);
        }
Esempio n. 3
0
        public async Task TravelNotificationServiceTests_EmailNotifyStatusChange_Completed_Test()
        {
            var emailer = new Common.Notification.Fakes.StubIEmailer()
            {
                InstanceObserver = new StubObserver()
            };
            var templatesRepository = new Common.Notification.Fakes.StubIEmailTemplatesRepository();
            var employeesRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            employeesRepository.GetAsyncInt32 = (id) =>
            {
                return(Task.FromResult(new Employee()
                {
                    EmployeeId = id,
                    FirstName = "My",
                    LastName = "Employee",
                    Email = "*****@*****.**"
                }));
            };

            TravelNotificationService service       = new TravelNotificationService(emailer, templatesRepository, employeesRepository);
            TravelRequest             travelRequest = new TravelRequest()
            {
                Status = TravelRequestStatus.Completed
            };

            await service.EmailNotifyStatusChange(travelRequest, "my reason");

            var observer = (StubObserver)emailer.InstanceObserver;

            Assert.AreEqual(1, observer.GetCalls().Count(c => c.StubbedMethod.Name == "Send"));
        }
Esempio n. 4
0
        public async Task TravelRequestsController_UpdateStatus_Approved_Test()
        {
            bool called = false;
            var  travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
            var  employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();

            travelRequestsRepository.GetAsyncInt32 = (id) =>
            {
                return(Task.FromResult(new TravelRequest()));
            };

            travelRequestsRepository.UpdateAsyncTravelRequest = (travel) =>
            {
                Assert.AreEqual(TravelRequestStatus.Approved, travel.Status);
                Assert.AreEqual("comments", travel.Comments);
                called = true;

                return(Task.FromResult(string.Empty));
            };

            notificationService.EmailNotifyStatusChangeTravelRequestString = (travelRequest, comments) =>
            {
                Assert.AreEqual(TravelRequestStatus.Approved, travelRequest.Status);
                return(Task.FromResult(string.Empty));
            };

            var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
            await target.UpdateStatus(1, TravelRequestStatus.Approved, "comments");

            Assert.IsTrue(called);
        }
Esempio n. 5
0
 public void TravelRequestsController_Constructor_Null_SecurityHelper_Test()
 {
     ITravelRequestRepository   travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
     IEmployeeRepository        employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
     ITravelNotificationService notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();
     var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, null, notificationService);
 }
Esempio n. 6
0
        public async Task EmployeeController_GetEmployees_Test()
        {
            var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var ADGraphAPI         = new Web.Security.Fakes.StubIADGraphApi();

            employeeRepository.GetAllAsync = () =>
            {
                return(Task.FromResult(new List <Employee>()
                {
                    new Employee()
                    {
                        EmployeeId = 1
                    }, new Employee()
                    {
                        EmployeeId = 2
                    }
                }.AsEnumerable()));
            };

            var target = new EmployeesController(employeeRepository, new SecurityHelper(), ADGraphAPI);
            var result = await target.GetEmployees();

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count());
        }
Esempio n. 7
0
        public async Task VisitsController_Add_Test()
        {
            bool called             = false;
            var  visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            var visit = new Visit()
            {
                VisitId = 1,
            };

            visitRepository.AddAsyncVisit = (visitParam) =>
            {
                Assert.IsTrue(visitParam.VisitId == visit.VisitId);
                called = true;
                return(Task.FromResult(10));
            };

            visitRepository.GetCompleteInfoAsyncInt32PictureType = (visitId, pictureType) =>
            {
                return(Task.FromResult(new Visit()));
            };

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            await target.Add(visit);

            Assert.IsTrue(called);
        }
        public void VacationNotificationServiceTests_WithDeniedStatus_EmailNotifyStatusChange_Denied_Test()
        {
            var emailer = new Common.Notification.Fakes.StubIEmailer()
            {
                InstanceObserver = new StubObserver()
            };
            var templatesRepository = new Common.Notification.Fakes.StubIEmailTemplatesRepository();
            var employeesRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            employeesRepository.GetInt32 = (id) =>
            {
                return(new Employee()
                {
                    EmployeeId = id,
                    FirstName = "My",
                    LastName = "Employee",
                    Email = "*****@*****.**"
                });
            };

            VacationNotificationService service         = new VacationNotificationService(emailer, templatesRepository, employeesRepository);
            VacationRequest             vacationRequest = new VacationRequest()
            {
                Status = VacationRequestStatus.Denied
            };

            service.NotifyStatusChange(vacationRequest, string.Empty);

            var observer = (StubObserver)emailer.InstanceObserver;

            Assert.AreEqual(1, observer.GetCalls().Count(c => c.StubbedMethod.Name == "Send"));
        }
Esempio n. 9
0
        public async Task VisitsController_Update_Failed_Test()
        {
            var visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            await target.Update(null);
        }
Esempio n. 10
0
 public async Task TravelRequestsController_Update_Exception_Test()
 {
     var travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
     var employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
     var notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();
     var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
     await target.Update(null);
 }
        public async Task EmployeesController_GetEmployees_Test()
        {
            bool called             = false;
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            employeeRepository.GetEmployeesAsyncStringPictureTypeInt32Int32 = (id, picture, pageSize, pageCount) =>
            {
                called = true;
                return(Task.FromResult((new List <Employee>()).AsEnumerable()));
            };

            var target = new EmployeesController(employeeRepository, new SecurityHelper());
            var result = await target.GetEmployees(string.Empty, PictureType.Small, 1, 1);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
Esempio n. 12
0
        public async Task VisitsController_UpdateStatus_Test()
        {
            bool called             = false;
            var  visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            var visit = new Visit()
            {
                VisitId    = 1,
                Status     = VisitStatus.Pending,
                EmployeeId = 1,
            };

            visitRepository.GetCompleteInfoAsyncInt32PictureType = (id, visitPicture) =>
            {
                return(Task.FromResult(visit));
            };

            employeeRepository.GetCompleteInfoAsyncInt32PictureType = (id, pictureType) =>
            {
                Employee employee = null;
                if (id == visit.EmployeeId)
                {
                    employee = new Employee()
                    {
                        EmployeeId = visit.EmployeeId,
                        Email      = "*****@*****.**"
                    };
                }

                return(Task.FromResult(employee));
            };

            visitRepository.UpdateAsyncVisit = (visitParam) =>
            {
                Assert.IsTrue(visitParam.VisitId == visit.VisitId);
                Assert.IsTrue(visitParam.Status == VisitStatus.Arrived);
                called = true;
                return(Task.FromResult(string.Empty));
            };

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            await target.UpdateStatus(visit.VisitId, VisitStatus.Arrived);

            Assert.IsTrue(called);
        }
Esempio n. 13
0
        public async Task EmployeeController_GetLoggedEmployeeInfo_User_Not_Found_Test()
        {
            var ADGraphAPI         = new Web.Security.Fakes.StubIADGraphApi();
            var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            Employee employee = null;

            employeeRepository.GetByEmailAsyncStringPictureType = (email, pictureType) =>
            {
                return(Task.FromResult(employee));
            };

            var target = new EmployeesController(employeeRepository, new SecurityHelper(), ADGraphAPI);
            var result = await target.GetLoggedEmployeeInfo(Model.PictureType.Small);

            Assert.IsNull(result);
        }
Esempio n. 14
0
        public async Task VisitsController_Get_Test()
        {
            bool called             = false;
            var  visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            visitRepository.GetCompleteInfoAsyncInt32PictureType = (id, picture) =>
            {
                called = true;
                return(Task.FromResult(new Visit()));
            };

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            var result = await target.Get(0, PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
Esempio n. 15
0
        public async Task VisitsController_GetUserCount_Test()
        {
            bool called             = false;
            var  visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            visitRepository.GetUserCountAsyncStringString = (user, filter) =>
            {
                called = true;
                return(Task.FromResult(10));
            };

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            var result = await target.GetUserCount(string.Empty, DateTime.UtcNow);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
        public async void VacationRequestsController_GetTeamVacationRequestsByEmployee_Test()
        {
            bool called                      = false;
            var  vacationRepository          = new Data.Repositories.Fakes.StubIVacationRequestRepository();
            var  employeeRepository          = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  vacationNotificationService = new Notifications.Fakes.StubIVacationNotificationService();

            vacationRepository.GetTeamVacationRequestsByEmployeeStringNullableOfInt32Int32Int32PictureType = (identity, month, year, status, picture) =>
            {
                called = true;
                return(Task.FromResult(Enumerable.Empty <Employee>()));
            };

            var target = new VacationRequestsController(vacationRepository, employeeRepository, new SecurityHelper(), vacationNotificationService);
            var result = await target.GetTeamVacationRequestsByEmployee(0, 0, 0, PictureType.Small);

            Assert.IsTrue(called);
        }
Esempio n. 17
0
        public async Task VisitsController_GetUserVisits_Test()
        {
            bool called             = false;
            var  visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            visitRepository.GetUserVisitsAsyncStringStringPictureTypeInt32Int32 = (identity, filter, picture, pageSize, pageCount) =>
            {
                called = true;
                return(Task.FromResult(new List <Visit>().AsEnumerable()));
            };

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            var result = await target.GetUserVisits(string.Empty, PictureType.Small, 1, 1, DateTime.UtcNow);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
Esempio n. 18
0
        public async Task EmployeeController_GetEmployeeInfo_Test()
        {
            var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            employeeRepository.GetEmployeeAsyncInt32PictureType = (id, pictureType) =>
            {
                return(Task.FromResult(new Employee()
                {
                    EmployeeId = id
                }));
            };

            var target = new EmployeesController(employeeRepository, new SecurityHelper());
            var result = await target.Get(1, Model.PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.EmployeeId == 1);
        }
Esempio n. 19
0
        public async Task VisitsController_GetContFromDate_Test()
        {
            bool called             = false;
            var  visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            visitRepository.GetCountFromDateAsyncStringDateTime = (filter, datetime) =>
            {
                Assert.IsNotNull(datetime);
                called = true;
                return(Task.FromResult(20));
            };

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            var result = await target.GetCountFromDate(string.Empty, DateTime.Today);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
Esempio n. 20
0
        public async Task TravelRequestsController_GetUserTravelRequests_Test()
        {
            bool called = false;
            var  travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
            var  employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();

            travelRequestsRepository.GetUserTravelRequestsAsyncStringStringInt32Int32Int32 = (id, filter, status, size, count) =>
            {
                called = true;
                return(Task.FromResult(new List <TravelRequest>().AsEnumerable()));
            };

            var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
            var result = await target.GetUserTravelRequests(string.Empty, 1, 1, 1);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
Esempio n. 21
0
        public async Task TravelRequestsController_GetTeamTravelDistribution_Test()
        {
            bool called = false;
            var  travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
            var  employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();

            travelRequestsRepository.GetTeamTravelDistributionAsyncStringInt32 = (id, numPictures) =>
            {
                called = true;

                return(Task.FromResult(new List <TravelDistribution>().AsEnumerable()));
            };

            var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
            var result = await target.GetTeamTravelDistribution(5);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
Esempio n. 22
0
        public async Task TravelRequestsController_GetAllCount_Test()
        {
            bool called = false;
            var  travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
            var  employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();

            travelRequestsRepository.GetAllCountAsyncStringInt32 = (filter, status) =>
            {
                called = true;

                return(Task.FromResult(10));
            };

            var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
            var result = await target.GetAllCount(string.Empty, 1);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
Esempio n. 23
0
        public async Task TravelRequestsController_Get_Test()
        {
            bool called = false;
            var  travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
            var  employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();

            travelRequestsRepository.GetCompleteInfoAsyncInt32PictureType = (id, picture) =>
            {
                called = true;

                return(Task.FromResult(new TravelRequest()));
            };

            var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
            var result = await target.Get(1, PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
        public void VacationNotificationServiceTests_NotifyNewVacationRequest_Test()
        {
            var emailer = new Common.Notification.Fakes.StubIEmailer()
            {
                InstanceObserver = new StubObserver()
            };
            var templatesRepository = new Common.Notification.Fakes.StubIEmailTemplatesRepository();
            var employeesRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            employeesRepository.GetInt32 = (id) =>
            {
                return(new Employee()
                {
                    EmployeeId = id,
                    FirstName = "My",
                    LastName = "Employee",
                    Email = "*****@*****.**",
                    Team = new Team()
                    {
                        Manager = new Employee()
                        {
                            FirstName = "Manager",
                            LastName = "LastName",
                            Email = "*****@*****.**"
                        }
                    }
                });
            };

            VacationNotificationService service         = new VacationNotificationService(emailer, templatesRepository, employeesRepository);
            VacationRequest             vacationRequest = new VacationRequest()
            {
                EmployeeId = 1
            };

            service.NotifyNewVacationRequest(vacationRequest);

            var observer = (StubObserver)emailer.InstanceObserver;

            Assert.AreEqual(1, observer.GetCalls().Count(c => c.StubbedMethod.Name == "Send"));
        }
Esempio n. 25
0
        public async Task VisitsController_Delete_Test()
        {
            bool called             = false;
            var  visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
            var  employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();

            var visit = new Visit()
            {
                VisitId = 1,
            };

            visitRepository.DeleteAsyncInt32 = (id) =>
            {
                Assert.IsTrue(id == visit.VisitId);
                called = true;
                return(Task.FromResult(string.Empty));
            };

            var target = new VisitsController(visitRepository, new SecurityHelper(), employeeRepository);
            await target.Delete(visit.VisitId);

            Assert.IsTrue(called);
        }
Esempio n. 26
0
 public void EmployeeController_Constructor_No_Security_Helper_Fails_Test()
 {
     var ADGraphAPI         = new Web.Security.Fakes.StubIADGraphApi();
     var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();
     var target             = new EmployeesController(employeeRepository, null, ADGraphAPI);
 }
Esempio n. 27
0
 public void VisitsController_Constructor_Failed_SecondArgument_test()
 {
     var visitRepository    = new Data.Repositories.Fakes.StubIVisitRepository();
     var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();
     var target             = new VisitsController(visitRepository, null, employeeRepository);
 }
Esempio n. 28
0
 public void EmployeeController_Constructor_No_ADGraphAPI_Fails_Test()
 {
     var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();
     var target             = new EmployeesController(employeeRepository, new SecurityHelper(), null);
 }
Esempio n. 29
0
 public void VisitsController_Constructor_Failed_FirstArgument_test()
 {
     var employeeRepository = new Data.Repositories.Fakes.StubIEmployeeRepository();
     var target             = new VisitsController(null, new SecurityHelper(), employeeRepository);
 }
Esempio n. 30
0
        public async Task TravelRequestsController_Add_Test()
        {
            bool called = false;
            var  travelRequestsRepository = new Data.Repositories.Fakes.StubITravelRequestRepository();
            var  employeeRepository       = new Data.Repositories.Fakes.StubIEmployeeRepository();
            var  notificationService      = new Web.Notifications.Fakes.StubITravelNotificationService();

            var newTravelRequests = new TravelRequest()
            {
                TravelRequestId = 1,
            };

            travelRequestsRepository.AddAsyncTravelRequest = (TravelRequest) =>
            {
                Assert.IsTrue(newTravelRequests.TravelRequestId == TravelRequest.TravelRequestId);
                called = true;

                return(Task.FromResult(10));
            };

            travelRequestsRepository.GetAsyncInt32 = (travelRequestId) =>
            {
                return(Task.FromResult(new TravelRequest()
                {
                    TravelRequestId = travelRequestId
                }));
            };

            travelRequestsRepository.GetWithEmployeeInfoAsyncInt32 = (travelRequestId) =>
            {
                return(Task.FromResult(new TravelRequest()
                {
                    TravelRequestId = travelRequestId
                }));
            };

            employeeRepository.GetAsyncInt32 = (id) =>
            {
                return(Task.FromResult(new Employee
                {
                    EmployeeId = id,
                    Team = new Team()
                    {
                        Manager = new Employee()
                        {
                            EmployeeId = 1,
                            Email = "*****@*****.**"
                        }
                    }
                }));
            };

            notificationService.EmailNotifyNewRequestTravelRequest = (travelRequest) =>
            {
                return(Task.FromResult(string.Empty));
            };

            var target = new TravelRequestsController(travelRequestsRepository, employeeRepository, new SecurityHelper(), notificationService);
            await target.Add(newTravelRequests);

            Assert.IsTrue(called);
        }