public void Create_WhenPassingRequestType_ReturnsRequestMail()
        {
            var holidayApplication = new HolidayApplication(
                _requester, _manager, _oneWeekHolidayStartingTomorrow);
            MailMessage requestMail = holidayApplication.Create(EmailContentType.Request);

            Assert.AreEqual(_requester.GetEmail(), requestMail.From);
            Assert.AreEqual(_manager.GetEmail(), requestMail.To);
            Assert.AreEqual("Holiday Request", requestMail.Subject, true);
        }
        public void Create_WhenPassingRejectedType_ReturnsRejectedMail()
        {
            var holidayApplication = new HolidayApplication(
                _requester, _manager, _oneWeekHolidayStartingTomorrow);
            MailMessage requestMail = holidayApplication.Create(EmailContentType.Rejection);

            Assert.AreEqual(_manager.GetEmail(), requestMail.From);
            Assert.AreEqual(_requester.GetEmail(), requestMail.To);
            Assert.IsTrue(requestMail.Subject.StartsWith("[rejected]",
                                                         StringComparison.InvariantCultureIgnoreCase));
        }
        public HolidayApplication Add(Guid holidayId,
                                      string userId,
                                      DateTime startDay,
                                      DateTime endDay,
                                      string reasons)
        {
            var holidayDb  = this.holidayRepository.GetById(holidayId);
            var employeeDb = this.employeeRepository.GetByUserId(userId);
            var holidayApplicationToAdd = HolidayApplication.Create(holidayDb, employeeDb, startDay, endDay, reasons);

            return(this.holidayApplicationRepository.Add(holidayApplicationToAdd));
        }
Exemple #4
0
        private static void Main(string[] args)
        {
            var requester = new Employee("James", "Darmody");
            var manager   = new Employee("Nucky", "Thompson");
            var oneWeekHolidayStartingTomorrow =
                new HolidayInterval(DateTime.Now.AddDays(1), DateTime.Now.AddDays(8));

            var holidayApplication = new HolidayApplication(
                requester, manager, oneWeekHolidayStartingTomorrow);

            var holidayRequest = new Holiday(new EmailNotifier());

            holidayRequest.Request(holidayApplication);
            holidayRequest.Approve(holidayApplication);
            holidayRequest.Reject(holidayApplication);
        }
Exemple #5
0
        private static void Main(string[] args)
        {
            var requester = new Employee("James", "Darmody");
            var manager   = new Employee("Nucky", "Thompson");
            var oneWeekHolidayStartingTomorrow =
                new HolidayInterval(DateTime.Now.AddDays(1), DateTime.Now.AddDays(8));

            var holidayApplication = new HolidayApplication(
                requester, manager, oneWeekHolidayStartingTomorrow);

            EmailSender.Send(holidayApplication.Create(EmailContentType.Request),
                             "requesterPassword");
            EmailSender.Send(holidayApplication.Create(EmailContentType.Approval),
                             "managerPassword");
            EmailSender.Send(holidayApplication.Create(EmailContentType.Rejection),
                             "managerPassword");
        }
        public void Create_WhenPassingApprovedType_ReturnsApprovedMail()
        {
            var holidayApplication = new HolidayApplication(
                _requester, _manager, _oneWeekHolidayStartingTomorrow);
            MailMessage requestMail = holidayApplication.Create(EmailContentType.Approval);

            Assert.AreEqual(_manager.GetEmail(), requestMail.From);
            Assert.AreEqual(_requester.GetEmail(), requestMail.CC.First());
            Assert.IsTrue(requestMail.Subject.StartsWith("[approved]",
                                                         StringComparison.InvariantCultureIgnoreCase));

            string hrEmailUser    = ConfigurationManager.AppSettings["hrMail"];
            string hrEmailAddress = string.Format("{0}@{1}", hrEmailUser,
                                                  ConfigurationManager.AppSettings["companyHost"]);
            var expectedHrMail = new MailAddress(hrEmailAddress, hrEmailUser);

            Assert.AreEqual(expectedHrMail, requestMail.To);
        }
Exemple #7
0
 public void Reject(HolidayApplication holidayApplication)
 {
     _notifier.Reject(holidayApplication);
 }
Exemple #8
0
 public void Approve(HolidayApplication holidayApplication)
 {
     _notifier.Approve(holidayApplication);
 }
        public void Request(HolidayApplication holidayApplication)
        {
            var composer = new EmailComposer(holidayApplication);

            Email.Send(composer.CreateRequestMail());
        }
        public void Approve(HolidayApplication holidayApplication)
        {
            var composer = new EmailComposer(holidayApplication);

            Email.Send(composer.CreateApprovalMail());
        }