static void Main(string[] args)
        {
            var employeeConfig = new EmployeeConfig();
            var requester      = new Employee("John", "Watson", employeeConfig);
            var manager        = new Employee("Sherlock", "Holmes", employeeConfig);

            var request  = new HolidayRequest(requester, manager, OneWeekHolidayStartingTomorrow());
            var composer = new Composer(request, new ComposerConfig());

            SendMail(composer.ComposeByStatus(RequestStatus.Approved));
            SendMail(composer.ComposeByStatus(RequestStatus.Rejected));
            SendMail(composer.ComposeByStatus(RequestStatus.Requested));
        }
        public void RejectedRequest_IsCorrect()
        {
            var now       = DateTime.Now;
            var requester = GetEmployee("John", "Watson");
            var manager   = GetEmployee("Sherlock", "Holmes");

            var request = new HolidayRequest(requester, manager, new TimeInterval {
                From = now.AddDays(1), To = now.AddDays(8)
            });
            var         composer = new Composer(request, GetConfig());
            MailMessage mail     = composer.ComposeByStatus(RequestStatus.Rejected);

            Assert.IsTrue(mail.Subject.StartsWith("[Rejected]"));
            Assert.AreEqual(mail.From.Address, manager.GetEmployeeEmail().Address);
            Assert.AreEqual(mail.To[0].Address, requester.GetEmployeeEmail().Address);
        }