예제 #1
0
        public async Task ExpenseService_AddExpense_Added_NotFail_Test()
        {
            var client   = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context  = new Data.MyCompanyContext();
            int expected = context.Expenses.Count() + 1;

            var employeeId = context.Employees.FirstOrDefault().EmployeeId;
            var expense    = new Expense()
            {
                Name             = "Bussiness",
                Description      = "Lorem ipsum dolor sit amet.",
                CreationDate     = DateTime.UtcNow.AddDays(-1),
                LastModifiedDate = DateTime.UtcNow,
                Status           = ExpenseStatus.Approved,
                Amount           = 270,
                Contact          = "Jeff Phillips",
                Picture          = null,
                ExpenseType      = ExpenseType.Accommodation,
                RelatedProject   = "MyCompany",
                EmployeeId       = employeeId
            };
            await client.ExpenseService.Add(expense);

            int actual = context.Expenses.Count();

            Assert.AreEqual(expected, actual);
        }
        public async Task TravelRequestService_UpdateTravelRequest_NotFail_Test()
        {
            var context       = new Data.MyCompanyContext();
            var travelRequest = context.TravelRequests.FirstOrDefault(r => r.Employee.EmployeePictures.Any());
            var client        = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);

            var newTravelRequest = new TravelRequest()
            {
                TravelRequestId = travelRequest.TravelRequestId,
                Name            = travelRequest.Name,
                Description     = travelRequest.Description,
                From            = Guid.NewGuid().ToString(),
                To                 = travelRequest.To,
                Depart             = travelRequest.Depart,
                Return             = travelRequest.Return,
                CreationDate       = travelRequest.CreationDate,
                LastModifiedDate   = travelRequest.LastModifiedDate,
                AccommodationNeed  = travelRequest.AccommodationNeed,
                TransportationNeed = travelRequest.TransportationNeed,
                Comments           = travelRequest.Comments,
                RelatedProject     = travelRequest.RelatedProject,
                Status             = (TravelRequestStatus)(int)travelRequest.Status,
                TravelType         = (TravelType)(int)travelRequest.TravelType,
                EmployeeId         = travelRequest.EmployeeId,
            };

            await client.TravelRequestService.Update(newTravelRequest);

            var newContext = new Data.MyCompanyContext();
            var actual     = newContext.TravelRequests.FirstOrDefault(r => r.TravelRequestId == travelRequest.TravelRequestId);

            Assert.AreEqual(newTravelRequest.From, actual.From);
        }
        public async Task ExpenseTravelService_AddExpenseTravel_Added_NotFail_Test()
        {
            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);

            var context  = new Data.MyCompanyContext();
            int expected = context.ExpenseTravels.Count() + 1;

            var expenseId = context.Expenses.Include("ExpenseTravel")
                            .Where(e => e.ExpenseTravel == null).First().ExpenseId;

            var expenseTravel = new ExpenseTravel()
            {
                ExpenseId = expenseId,
                Distance  = 1,
                From      = "From",
                To        = "To",
                Expense   = null,
            };

            await client.ExpenseTravelService.Add(expenseTravel);

            int actual = context.ExpenseTravels.Count();

            Assert.AreEqual(expected, actual);

            expenseTravel.From = Guid.NewGuid().ToString();
            await client.ExpenseTravelService.Update(expenseTravel);

            var actualUpdated = context.ExpenseTravels.Where(t => t.ExpenseId == expenseTravel.ExpenseId).FirstOrDefault();

            Assert.AreEqual(expenseTravel.From, actualUpdated.From);
        }
        public async Task Integration_VacationRequestsController_GetTeamVacationRequests_Test()
        {
            var    context  = new Data.MyCompanyContext();
            var    manager  = context.Employees.FirstOrDefault(e => e.ManagedTeams.Any());
            string identity = manager.Email;

            var vacation = context.VacationRequests.FirstOrDefault();
            int?month    = vacation.From.Month;
            int year     = vacation.From.Year;

            int status    = (int)(VacationRequestStatus.Approved | VacationRequestStatus.Denied | VacationRequestStatus.Pending);
            int pageSize  = 1;
            int pageCount = 0;

            BaseRequest request = new BaseRequest(SecurityHelper.UrlBase, SecurityHelper.AccessToken);

            string url = String.Format(CultureInfo.InvariantCulture
                                       , "{0}api/vacationRequests/team?month={1}&year={2}&status={3}&pageSize={4}&pageCount={5}&PictureType={6}&filter=", SecurityHelper.UrlBase,
                                       month, year, status, pageSize, pageCount, (int)PictureType.Small);

            var results = await request.GetAsync <List <VacationRequest> >(url);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
            Assert.IsTrue(results.Count() == 1);
            Assert.IsNotNull(results.First().Employee);
            Assert.IsNotNull(results.First().Employee.EmployeePictures);
        }
        public async Task Integration_VacationRequestsController_GetTeamVacationRequestsByEmployee_Test()
        {
            var context = new Data.MyCompanyContext();
            var team    = context.Teams.Include("Manager").Where(t => t.Employees.Any()).FirstOrDefault();

            string identity = team.Manager.Email;
            var    vacation = context.VacationRequests.FirstOrDefault();
            int?   month    = vacation.From.Month;
            int    year     = vacation.From.Year;
            int    status   = (int)(VacationRequestStatus.Approved | VacationRequestStatus.Denied | VacationRequestStatus.Pending);

            BaseRequest request = new BaseRequest(SecurityHelper.UrlBase, SecurityHelper.AccessToken);

            string url = String.Format(CultureInfo.InvariantCulture
                                       , "{0}api/vacationRequests/team/employee?month={1}&year={2}&status={3}&PictureType={4}", SecurityHelper.UrlBase,
                                       month, year, status, PictureType.Small);

            var results = await request.GetAsync <List <Employee> >(url);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
            Assert.IsTrue(results.Count() > 0);
            Assert.IsNotNull(results.First().VacationRequests);
            Assert.IsNotNull(results.First().EmployeePictures);
        }
        public async Task TravelRequestService_AddTravelRequest_Added_NotFail_Test()
        {
            var context  = new Data.MyCompanyContext();
            int expected = context.TravelRequests.Count() + 1;

            var client        = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var employeeId    = context.Employees.FirstOrDefault().EmployeeId;
            var TravelRequest = new TravelRequest()
            {
                Name               = "Bussiness Travel",
                Description        = "Lorem ipsum dolor sit amet.",
                From               = "From",
                To                 = "To",
                Depart             = DateTime.UtcNow.AddDays(5),
                Return             = DateTime.UtcNow.AddDays(7),
                CreationDate       = DateTime.UtcNow.AddDays(-1),
                LastModifiedDate   = DateTime.UtcNow,
                AccommodationNeed  = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat",
                TransportationNeed = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat",
                Comments           = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat",
                RelatedProject     = "MyCompany",
                Status             = TravelRequestStatus.Approved,
                TravelType         = TravelType.Roundtrip,
                EmployeeId         = employeeId,
            };

            int travelRequestId = await client.TravelRequestService.Add(TravelRequest);

            int actual = context.TravelRequests.Count();

            Assert.AreEqual(expected, actual);
        }
예제 #7
0
        public async Task VisitService_UpdateStatus_Test()
        {
            var context = new Data.MyCompanyContext();
            int visitId = context.Visits.FirstOrDefault().VisitId;

            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            await client.VisitService.UpdateStatus(visitId, DocumentResponse.VisitStatus.Arrived);
        }
예제 #8
0
        public async Task VisitService_GetUserCount_Test()
        {
            var context  = new Data.MyCompanyContext();
            var employee = context.Employees.Include("Visits").Where(e => e.Visits.Any()).FirstOrDefault();
            var client   = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var actual   = await client.VisitService.GetUserCount(string.Empty, DateTime.Now.AddMonths(-1));

            Assert.AreEqual(employee.Visits.Count(), actual);
        }
예제 #9
0
        public async Task VisitService_GetCount_Test()
        {
            var context  = new Data.MyCompanyContext();
            int expected = context.Visits.Count();
            var client   = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var actual   = await client.VisitService.GetCount(string.Empty, null, null);

            Assert.AreEqual(expected, actual);
        }
예제 #10
0
        public async Task ExpenseService_GetTeamExpensesByMemberCount_Test()
        {
            var client          = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context         = new Data.MyCompanyContext();
            var managerIdentity = context.Employees.FirstOrDefault(e => e.ManagedTeams.Any()).Email;

            var count = await client.ExpenseService.GetTeamExpensesByMemberCount();

            Assert.IsTrue(count > 0);
        }
        public async Task TravelRequestService_GetAllCount_Test()
        {
            var context = new Data.MyCompanyContext();
            int status  = (int)(TravelRequestStatus.Approved | TravelRequestStatus.Denied | TravelRequestStatus.Completed | TravelRequestStatus.Pending);

            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var result = await client.TravelRequestService.GetAllCount(string.Empty, status);

            Assert.AreEqual(context.TravelRequests.Count(), result);
        }
        public async Task TravelRequestService_GetTeamTravelDistribution_Test()
        {
            var context  = new Data.MyCompanyContext();
            var employee = context.Employees.Where(e => e.ManagedTeams.Any()).FirstOrDefault();

            var client  = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var results = await client.TravelRequestService.GetTeamTravelDistribution();

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
        }
        public async Task TravelRequestService_GetUserCount_Test()
        {
            var context  = new Data.MyCompanyContext();
            var employee = context.Employees.Include("Travels").FirstOrDefault(e => e.Travels.Any());
            int status   = (int)(TravelRequestStatus.Approved | TravelRequestStatus.Denied | TravelRequestStatus.Completed | TravelRequestStatus.Pending);

            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var result = await client.TravelRequestService.GetUserCount(string.Empty, status);

            Assert.AreEqual(employee.Travels.Count(), result);
        }
예제 #14
0
        public async Task ExpenseService_GetTeamCount_NoResults_Test()
        {
            var client          = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context         = new Data.MyCompanyContext();
            var managerIdentity = context.Employees.FirstOrDefault(e => e.ManagedTeams.Any()).Email;
            int expenseStatus   = (int)ExpenseStatus.Unknown;

            var count = await client.ExpenseService.GetTeamCount(expenseStatus);

            Assert.IsTrue(count == 0);
        }
예제 #15
0
        public async Task ExpenseService_UpdateExpense_NotFail_Test()
        {
            var client    = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context   = new Data.MyCompanyContext();
            var expenseId = context.Expenses.FirstOrDefault().ExpenseId;

            await client.ExpenseService.UpdateStatus(expenseId, ExpenseStatus.Denied);

            var actual = await client.ExpenseService.Get(expenseId, PictureType.Small);

            Assert.AreEqual(actual.Status, ExpenseStatus.Denied);
        }
예제 #16
0
        public async Task ExpenseService_GetUserCount_Test()
        {
            var client        = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context       = new Data.MyCompanyContext();
            int expectedCount = context.Expenses.Count();
            var userIdentity  = context.Employees.FirstOrDefault(e => e.Expenses.Any()).Email;
            int expenseStatus = (int)(ExpenseStatus.Approved | ExpenseStatus.Denied | ExpenseStatus.Pending);

            var count = await client.ExpenseService.GetUserCount(expenseStatus);

            Assert.IsTrue(count > 0);
        }
예제 #17
0
        public async Task ExpenseService_GetTeamMemberExpensesByMonth_Test()
        {
            var client      = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context     = new Data.MyCompanyContext();
            var employeeId  = context.Employees.FirstOrDefault(e => e.Expenses.Any()).EmployeeId;
            int expenseType = (int)(ExpenseType.Accommodation | ExpenseType.Food | ExpenseType.Other | ExpenseType.Travel);

            var results = await client.ExpenseService.GetTeamMemberExpensesByMonth(employeeId, expenseType);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
        }
예제 #18
0
        public async Task VisitService_GetCountFromDate_Test()
        {
            var      context = new Data.MyCompanyContext();
            DateTime date    = context.Visits.ToList().First().VisitDateTime;

            int expected = context.Visits.Count(v => v.VisitDateTime >= date);

            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var actual = await client.VisitService.GetCountFromDate(string.Empty, date);

            Assert.AreEqual(expected, actual);
        }
        public async Task TravelAttachmentService_Get_Test()
        {
            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);

            var context            = new Data.MyCompanyContext();
            var travelAttachmentId = context.TravelAttachments.FirstOrDefault().TravelAttachmentId;

            TravelAttachment travelAttachment = await client.TravelAttachmentService.Get(travelAttachmentId);

            Assert.IsNotNull(travelAttachment);
            Assert.AreEqual(travelAttachmentId, travelAttachment.TravelAttachmentId);
        }
예제 #20
0
        public async Task EmployeeService_GetEmployee_Test()
        {
            var client     = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context    = new Data.MyCompanyContext();
            int employeeId = context.Employees.First().EmployeeId;

            var result = await client.EmployeeService.GetEmployee(employeeId, PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.EmployeePictures);
            Assert.IsTrue(result.EmployeePictures.Count() == 1);
        }
        public async Task VisitorService_Get_Test()
        {
            var context   = new Data.MyCompanyContext();
            int visitorId = context.Visitors.FirstOrDefault().VisitorId;

            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var result = await client.VisitorService.Get(visitorId, PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.VisitorPictures);
            Assert.IsTrue(result.VisitorId == visitorId);
            Assert.IsTrue(result.VisitorPictures.Count == 1);
        }
예제 #22
0
        public async Task ExpenseService_GetTeamExpensesByMember_Test()
        {
            var         client          = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var         context         = new Data.MyCompanyContext();
            var         managerIdentity = context.Employees.FirstOrDefault(e => e.ManagedTeams.Any()).Email;
            PictureType pictureType     = PictureType.Small;

            var results = await client.ExpenseService.GetTeamExpensesByMember(pictureType);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
            Assert.IsNotNull(results.First().Picture);
        }
예제 #23
0
        public async Task ExpenseService_GetTeamMemberSummaryExpenses_EmptyMonth_Test()
        {
            var client  = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context = new Data.MyCompanyContext();

            var employeeId = context.Employees.FirstOrDefault(e => e.Expenses.Any()).EmployeeId;
            var datetime   = context.Expenses.Where(e => e.EmployeeId == employeeId).First().CreationDate;

            var results = await client.ExpenseService.GetTeamMemberSummaryExpenses(employeeId, null, datetime.Year);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
        }
예제 #24
0
        public async Task ExpenseService_GetUserExpenses_NoResults_Test()
        {
            var client        = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context       = new Data.MyCompanyContext();
            var userIdentity  = context.Employees.FirstOrDefault(e => e.Expenses.Any()).Email;
            int expenseStatus = (int)ExpenseStatus.Unknown;
            int number        = 1;

            var results = await client.ExpenseService.GetUserExpenses(expenseStatus, number, 0);

            Assert.IsNotNull(results);
            Assert.IsFalse(results.Any());
        }
예제 #25
0
        public async Task VisitService_GetCount_Today_Test()
        {
            DateTime date   = DateTime.UtcNow.AddDays(2).Date;
            DateTime toDate = DateTime.UtcNow.AddDays(3).Date;

            var context  = new Data.MyCompanyContext();
            int expected = context.Visits.ToList().Where(v => v.VisitDateTime.Date == date).Count();

            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var actual = await client.VisitService.GetCount(string.Empty, date, toDate);

            Assert.AreEqual(expected, actual);
        }
        public async Task VisitorService_GetVisitors_Test()
        {
            var context   = new Data.MyCompanyContext();
            int pageSize  = 1;
            int pageCount = 0;

            var client  = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var results = await client.VisitorService.GetVisitors(string.Empty, PictureType.Small, pageSize, pageCount);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Count == 1);
            Assert.IsNotNull(results.First().VisitorPictures);
            Assert.IsTrue(results.First().VisitorPictures.Count == 1);
        }
        public async Task TravelRequestService_GetNotFinishedUserTravelRequests_Test()
        {
            var context      = new Data.MyCompanyContext();
            var userIdentity = context.Employees.FirstOrDefault(e => e.Travels.Any()).Email;
            int status       = (int)(TravelRequestStatus.Approved | TravelRequestStatus.Denied | TravelRequestStatus.Completed | TravelRequestStatus.Pending);

            var client  = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var results = await client.TravelRequestService.GetNotFinishedUserTravelRequests(string.Empty, status);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
            Assert.IsNotNull(results.First().Employee);
            Assert.IsNull(results.First().Employee.EmployeePictures);
        }
예제 #28
0
        public async Task ExpenseService_GetExpenseAllUserInfo_Call_GetResults_Test()
        {
            var client    = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var context   = new Data.MyCompanyContext();
            int expenseId = context.Expenses.FirstOrDefault().ExpenseId;

            var result = await client.ExpenseService.Get(expenseId, PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Employee);
            Assert.IsNotNull(result.Employee.EmployeePictures);
            Assert.IsTrue(result.Employee.EmployeePictures.Count() == 1);
            Assert.IsTrue(result.ExpenseId == expenseId);
        }
        public async Task TravelRequestService_GetCompleteInfo_Test()
        {
            var context         = new Data.MyCompanyContext();
            int travelRequestId = context.TravelRequests.FirstOrDefault().TravelRequestId;

            var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken);
            var result = await client.TravelRequestService.Get(travelRequestId, PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.TravelRequestId == travelRequestId);
            Assert.IsNotNull(result.Employee);
            Assert.IsNotNull(result.Employee.EmployeePictures);
            Assert.IsTrue(result.Employee.EmployeePictures.Count == 1);
        }
예제 #30
0
        public void VacationRequestRepository_GetUserPendingVacation_Test()
        {
            var    context = new Data.MyCompanyContext();
            var    workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            var    employee = context.Employees.Include("VacationRequests").FirstOrDefault(e => e.VacationRequests.Any());
            string identity = employee.Email;
            int    year     = employee.VacationRequests.First().From.Year;

            IVacationRequestRepository target = new VacationRequestRepository(context, null, workingDaysCalculator, false);

            var actual = target.GetUserPendingVacation(employee.Email, year);

            Assert.IsTrue(actual > 0);
        }