Example #1
0
        public void VacationRequestRepository_AddVacationRequest_Added_NotFail_Test()
        {
            var context  = new MyCompanyContext();
            int expected = context.VacationRequests.Count() + 1;
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();

            workingDaysCalculator.GetWorkingDaysInt32DateTimeDateTime = (i, time, arg3) => 5;

            var employeeId = context.Employees.FirstOrDefault().EmployeeId;
            var target     = new VacationRequestRepository(context, null, workingDaysCalculator, false);

            var vacationRequest = new VacationRequest()
            {
                From             = DateTime.UtcNow,
                To               = DateTime.UtcNow,
                NumDays          = 0,
                Comments         = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
                CreationDate     = DateTime.UtcNow.AddDays(-1),
                LastModifiedDate = DateTime.UtcNow,
                Status           = VacationRequestStatus.Approved,
                EmployeeId       = employeeId,
            };

            target.Add(vacationRequest);

            int actual = context.VacationRequests.Count();

            Assert.AreEqual(expected, actual);
        }
Example #2
0
        public void VacationRequestRepository_GetVacationRequest_Call_GetResults_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            int vacationRequestId     = context.VacationRequests.FirstOrDefault().VacationRequestId;

            var target = new VacationRequestRepository(context, null, workingDaysCalculator, false);
            var result = target.Get(vacationRequestId);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.VacationRequestId == vacationRequestId);
        }
Example #3
0
        public void VacationRequestRepository_GetAllVacationRequests_Call_GetResults_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            int expectedCount         = context.VacationRequests.Count();

            var target  = new VacationRequestRepository(context, null, workingDaysCalculator, false);
            var results = target.GetAll();

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
        }
Example #4
0
        public void VacationRequestRepository_UpdateVacationRequest_NotFail_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            var vacationRequest       = context.VacationRequests.FirstOrDefault(v => v.Status != VacationRequestStatus.Denied);
            var target = new VacationRequestRepository(context, null, workingDaysCalculator, false);

            vacationRequest.Status = VacationRequestStatus.Denied;
            target.Update(vacationRequest);

            var actual = target.Get(vacationRequest.VacationRequestId);

            Assert.AreEqual(VacationRequestStatus.Denied, actual.Status);
        }
Example #5
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);
        }
Example #6
0
        public void VacationRequestRepository_DeleteVacationRequest_NoExists_NotFail_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            int expected = context.VacationRequests.Count();

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

            target.Delete(-1);

            int actual = context.VacationRequests.Count();

            Assert.AreEqual(expected, actual);
        }
Example #7
0
        public void VacationRequestRepository_GetUserCount_Test()
        {
            var    context = new MyCompanyContext();
            var    workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            var    employee = context.Employees.Include("VacationRequests").FirstOrDefault(e => e.VacationRequests.Any());
            string identity = employee.Email;
            int?   month    = employee.VacationRequests.First().From.Month;
            int    year     = employee.VacationRequests.First().From.Year;
            int    status   = (int)(VacationRequestStatus.Approved | VacationRequestStatus.Denied | VacationRequestStatus.Pending);
            int    expected = employee.VacationRequests.Count(v => v.From.Month == month && v.From.Year == year);

            IVacationRequestRepository target = new VacationRequestRepository(context, null, workingDaysCalculator, false);
            var actual = target.GetUserCount(identity, month, year, status);

            Assert.AreEqual(expected, actual);
        }
Example #8
0
        public void VacationRequestRepository_GetTeamCount_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            var team            = context.Teams.Include("Manager").Where(t => t.Employees.Any()).FirstOrDefault();
            var vacationRequest = context.VacationRequests.FirstOrDefault();

            string identity = team.Manager.Email;
            int?   month    = vacationRequest.From.Month;
            int    year     = vacationRequest.From.Year;
            int    status   = (int)(VacationRequestStatus.Approved | VacationRequestStatus.Denied | VacationRequestStatus.Pending);

            IVacationRequestRepository target = new VacationRequestRepository(context, null, workingDaysCalculator, false);
            var actual = target.GetTeamCount(identity, string.Empty, month, year, status);

            Assert.IsTrue(actual > 0);
        }
Example #9
0
        public void VacationRequestRepository_GetUserVacationRequestsById_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            var employee = context.Employees
                           .Include("VacationRequests")
                           .Where(e => e.VacationRequests.Any() && e.EmployeePictures.Any())
                           .FirstOrDefault();
            int employeeId = employee.EmployeeId;
            int year       = employee.VacationRequests.First().From.Year;

            IVacationRequestRepository target = new VacationRequestRepository(context, null, workingDaysCalculator, false);
            var results = target.GetUserVacationRequests(employeeId, year);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
            Assert.IsNotNull(results.First().Employee);
            Assert.IsNull(results.First().Employee.EmployeePictures);
        }
Example #10
0
        public async void VacationRequestRepository_GetTeamVacationRequestsByEmployee_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            var team            = context.Teams.Include("Manager").Where(t => t.Employees.Any()).FirstOrDefault();
            var vacationRequest = context.VacationRequests.FirstOrDefault();

            string identity = team.Manager.Email;
            int?   month    = vacationRequest.From.Month;
            int    year     = vacationRequest.From.Year;
            int    status   = (int)(VacationRequestStatus.Approved | VacationRequestStatus.Denied | VacationRequestStatus.Pending);

            IVacationRequestRepository target = new VacationRequestRepository(context, null, workingDaysCalculator, false);
            var results = await target.GetTeamVacationRequestsByEmployee(identity, month, year, status, PictureType.Small);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
            //Assert.IsTrue(results.Count() == 6); //TODO: comentar con vgaltes
            Assert.IsNotNull(results.First().VacationRequests);
            Assert.IsTrue(results.First().VacationRequests.Any());
            Assert.IsNotNull(results.First().EmployeePictures);
        }
Example #11
0
        public void VacationRequestRepository_GetTeamVacationRequests_Test()
        {
            var context = new MyCompanyContext();
            var workingDaysCalculator = new Data.Services.Fakes.StubIWorkingDaysCalculator();
            var manager         = context.Employees.FirstOrDefault(e => e.ManagedTeams.Any());
            var vacationRequest = context.VacationRequests.FirstOrDefault();

            string identity  = manager.Email;
            int?   month     = vacationRequest.From.Month;
            int    year      = vacationRequest.From.Year;
            int    status    = (int)(VacationRequestStatus.Approved | VacationRequestStatus.Denied | VacationRequestStatus.Pending);
            int    pageSize  = 1;
            int    pageCount = 0;

            IVacationRequestRepository target = new VacationRequestRepository(context, null, workingDaysCalculator, false);
            var results = target.GetTeamVacationRequests(identity, string.Empty, month, year, status, PictureType.Small, pageSize, pageCount);

            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
            Assert.IsTrue(results.Count() == 1);
            Assert.IsNotNull(results.First().Employee);
            Assert.IsNotNull(results.First().Employee.EmployeePictures);
        }
        public App()
        {
            var medicationRepository           = new MedicationRepository(new Stream <Medication>(MEDICATION_FILE));
            var diagnosisRepository            = new DiagnosisRepository(new Stream <Diagnosis>(DIAGNOSIS_FILE));
            var allergenRepository             = new AllergensRepository(new Stream <Allergens>(ALLERGEN_FILE));
            var categoryRepository             = new MedicationCategoryRepository(new Stream <MedicationCategory>(CATEGORY_FILE));
            var symptomsRepository             = new SymptomsRepository(new Stream <Symptoms>(SYMPTOMS_FILE));
            var ingredientsRepository          = new MedicationIngredientRepository(new Stream <MedicationIngredient>(INGREDIENTS_FILE));
            var specializationRepository       = new SpecializationRepository(new Stream <Specialization>(SPECIALIZATION_FILE));
            var cityRepository                 = new CityRepository(new Stream <City>(CITY_FILE));
            var addressRepository              = new AddressRepository(new Stream <Address>(ADDRESS_FILE), cityRepository);
            var stateRepository                = new StateRepository(new Stream <State>(STATE_FILE));
            var hospitalRepository             = new HospitalRepository(new Stream <Hospital>(HOSPITAL_FILE));
            var departmentRepository           = new DepartmentRepository(hospitalRepository, new Stream <Department>(DEPARTMENT_FILE));
            var roomRepository                 = new RoomRepository(departmentRepository, new Stream <Room>(ROOM_FILE));
            var userRepository                 = new UserRepository(new Stream <RegisteredUser>(USER_FILE), cityRepository, addressRepository, departmentRepository, roomRepository);
            var renovationRepository           = new RenovationRepository(roomRepository, new Stream <Renovation>(RENOVATION_FILE));
            var medicalRecordRepository        = new MedicalRecordRepository(new Stream <MedicalRecord>(RECORD_FILE), diagnosisRepository, medicationRepository, userRepository);
            var bedRepository                  = new BedRepository(roomRepository, medicalRecordRepository, new Stream <Bed>(BED_FILE));
            var equipmentTypeRepository        = new EquipmentTypeRepository(new Stream <EquipmentType>(EQUIPMENT_TYPE_FILE));
            var equipmentRepository            = new HospitalEquipmentRepository(new Stream <HospitalEquipment>(EQUIPMENT_FILE));
            var treatmentsRepository           = new TreatmentRepository(medicationRepository, departmentRepository, new Stream <Treatment>(TREATMENTS_FILE));
            var examinationSurgeryRepository   = new ExaminationSurgeryRepository(treatmentsRepository, medicalRecordRepository, userRepository, new Stream <ExaminationSurgery>(EXAMINATION_SURGERY_FILE));
            var emergencyRequestRepository     = new EmergencyRequestRepository(medicalRecordRepository, new Stream <EmergencyRequest>(EMERGENCY_REQUEST_FILE));
            var vaccinesRepository             = new VaccinesRepository(new Stream <Vaccines>(VACCINES_FILE));
            var notificationRepository         = new NotificationRepository(userRepository, new Stream <Notification>(NOTIFICATION_FILE));
            var articleRepository              = new ArticleRepository(userRepository, new Stream <Article>(ARTICLE_FILE));
            var questionRepository             = new QuestionRepository(userRepository, new Stream <Question>(QUESTIONS_FILE));
            var doctorReviewsRepository        = new DoctorReviewRepository(userRepository, new Stream <DoctorReview>(DOCTOR_REVIEWS_FILE));
            var feedbackRepository             = new FeedbackRepository(userRepository, new Stream <Feedback>(FEEDBACK_FILE));
            var surveyRepository               = new SurveyRepository(userRepository, new Stream <Survey>(SURVEY_FILE));
            var appointmentsRepository         = new AppointmentRepository(userRepository, medicalRecordRepository, roomRepository, new Stream <Appointment>(APPOINTMENTS_FILE));
            var workDayRepository              = new WorkDayRepository(userRepository, new Stream <WorkDay>(WORK_DAY_FILE));
            var vacationRequestRepository      = new VacationRequestRepository(userRepository, new Stream <VacationRequest>(VACATION_REQUEST_FILE));
            var reportsRepository              = new ReportRepository(new Stream <Report>(REPORTS_FILE));
            var labTestTypeRepository          = new LabTestTypeRepository(new Stream <LabTestType>(LAB_TEST_TYPE_FILE));
            var validationMedicationRepository = new ValidationMedicationRepository(new Stream <ValidationMed>(VALIDATION_FILE), userRepository, medicationRepository);

            var equipmentTypeService        = new EquipmentTypeService(equipmentTypeRepository);
            var medicationService           = new MedicationService(medicationRepository, validationMedicationRepository);
            var diagnosisService            = new DiagnosisService(diagnosisRepository);
            var allergenService             = new AllergensService(allergenRepository);
            var categoryService             = new MedicationCategoryService(categoryRepository);
            var symptomsService             = new SymptomsService(symptomsRepository);
            var ingredientsService          = new MedicationIngredientService(ingredientsRepository);
            var specializationService       = new SpecializationService(specializationRepository);
            var cityService                 = new CityService(cityRepository);
            var stateService                = new StateService(stateRepository);
            var addressService              = new AddressService(addressRepository);
            var notificationService         = new NotificationService(notificationRepository, userRepository, medicalRecordRepository);
            var validationMedicationService = new ValidationMedicationService(validationMedicationRepository, notificationService);
            var hospitalService             = new HospitalService(hospitalRepository);
            var departmentService           = new DepartmentService(departmentRepository);
            var bedService                = new BedService(bedRepository);
            var medicalRecordService      = new MedicalRecordService(medicalRecordRepository);
            var treatmentService          = new TreatmentService(treatmentsRepository, notificationService);
            var examiantionSurgeryService = new ExaminationSurgeryService(examinationSurgeryRepository);
            var emergencyRequestService   = new EmergencyRequestService(emergencyRequestRepository, notificationService);
            var vaccinesService           = new VaccinesService(vaccinesRepository);
            var articleService            = new ArticleService(articleRepository);
            var questionService           = new QuestionService(questionRepository, notificationService);
            var doctorsReviewService      = new DoctorReviewService(doctorReviewsRepository);
            var feedbackService           = new FeedbackService(feedbackRepository);
            var surveyService             = new SurveyService(surveyRepository);
            var userService               = new UserService(userRepository, medicalRecordService);
            var workDayService            = new WorkDayService(workDayRepository, MAX_HOURS_PER_WEEK);
            var appointmentService        = new AppointmentService(appointmentsRepository, workDayService, notificationService, VALID_HOURS_FOR_SCHEDULING, APPOINTMENT_LENGTH_IN_MINUTES,
                                                                   SURGERY_LENGTH_IN_MINUTES, START_WORKING_HOURS, END_WORKING_HOURS);
            var vacationRequestService      = new VacationRequestService(vacationRequestRepository, notificationService, NUMBER_OF_ALLOWED_VACAY_REQUESTS);
            var reportsService              = new ReportService(reportsRepository, treatmentsRepository, medicationRepository, examinationSurgeryRepository, roomRepository);
            var labTestTypeService          = new LabTestTypeService(labTestTypeRepository);
            var roomService                 = new RoomService(roomRepository, appointmentsRepository);
            var hospitalEquipmentService    = new HospitalEquipmentService(equipmentRepository);
            var renovationService           = new RenovationService(renovationRepository, roomService, appointmentsRepository, hospitalEquipmentService, notificationService, RENOVATION_DAYS_RESTRICTION, RENOVATION_DAYS_RESTRICTION);
            var availableAppointmentService = new AvailableAppointmentService(appointmentsRepository, workDayService, VALID_HOURS_FOR_SCHEDULING,
                                                                              APPOINTMENT_LENGTH_IN_MINUTES, SURGERY_LENGTH_IN_MINUTES, START_WORKING_HOURS, END_WORKING_HOURS);

            equipmentTypeController        = new EquipmentTypeController(equipmentTypeService);
            medicationController           = new MedicationController(medicationService);
            userController                 = new UserController(userService);
            diagnosisController            = new DiagnosisController(diagnosisService);
            symptomsController             = new SymptomsController(symptomsService);
            categoryController             = new MedicationCategoryController(categoryService);
            allergensController            = new AllergensController(allergenService);
            vaccinesController             = new VaccinesController(vaccinesService);
            labTestTypeController          = new LabTestTypeController(labTestTypeService);
            medicationIngredientController = new MedicationIngredientController(ingredientsService);
            cityController                 = new CityController(cityService);
            specializationController       = new SpecializationController(specializationService);
            addressController              = new AddressController(addressService);
            stateController                = new StateController(stateService);
            departmentController           = new DepartmentController(departmentService);
            hospitalController             = new HospitalController(hospitalService);
            roomController                 = new RoomController(roomService);
            renovationController           = new RenovationController(renovationService);
            hospitalEquipmentController    = new HospitalEquipmentController(hospitalEquipmentService);
            medicalRecordController        = new MedicalRecordController(medicalRecordService);
            treatmentController            = new TreatmentController(treatmentService);
            examinationSurgeryController   = new ExaminationSurgeryController(examiantionSurgeryService);
            articleController              = new ArticleController(articleService);
            questionController             = new QuestionController(questionService);
            doctorReviewController         = new DoctorReviewController(doctorsReviewService);
            surveyController               = new SurveyController(surveyService);
            feedbackController             = new FeedbackController(feedbackService);
            workDayController              = new WorkDayController(workDayService);
            reportController               = new ReportController(reportsService);
            validationMedicationController = new ValidationMedicationController(validationMedicationService);
            vacationRequestController      = new VacationRequestController(vacationRequestService);
            bedController = new BedController(bedService);
            emergencyRequestController     = new EmergencyRequestController(emergencyRequestService);
            appointmentController          = new AppointmentController(appointmentService);
            notificationController         = new NotificationController(notificationService);
            availableAppointmentController = new AvailableAppointmentController(availableAppointmentService);

            validations = new Validations(UNDERAGE_RESTRICTION);
        }