public void ShouldMatchItsOptionString()
        {
            Func<DateSpan, string, string[], Meeting> meetingFactory = Substitute.For<Func<DateSpan, string, string[], Meeting>>();
              IPlanner planner = Substitute.For<IPlanner>();

              AddMeetingOption addMeetingOption = new AddMeetingOption(meetingFactory, planner);
              bool result = addMeetingOption.MatchesString(AddMeetingOption.AddMeetingOptionString);
              Assert.IsTrue(result);
        }
 public void ShouldMatchItsOptionString()
 {
     IMeetingFactory meetingFactory = Substitute.For<IMeetingFactory>();
       IPlanner planner = Substitute.For<IPlanner>();
       ILogger logger = Substitute.For<ILogger>();
       AddMeetingOption addMeetingOption = new AddMeetingOption(meetingFactory, planner, logger);
       bool result = addMeetingOption.MatchesString(AddMeetingOption.AddMeetingOptionString);
       Assert.IsTrue(result);
 }
        static void Main()
        {
            using (Logger logger = new Logger())
              {
            IEventsRepository eventsRepository = new EventsRepository("calendarData.dat");
            IAddPolicy shareableSchedulePolicy = new ShareableSchedulePolicy(eventsRepository);
            IAddPolicy exclusiveSchedulePolicy = new ExclusiveSchedulePolicy(eventsRepository);

            Planner planner = new Planner(eventsRepository, shareableSchedulePolicy, exclusiveSchedulePolicy);

            IMeetingFactory meetingFactory = new MeetingFactory();
            IOption addMeetingOption = new AddMeetingOption(meetingFactory, planner, logger);

            ITodoFactory todoFactory = new TodoFactory();
            IOption addTodoOption = new AddTodoOption(todoFactory, planner, logger);

            IOption listEventsOption = new ListEventsOption(planner);

            IOption endApplicationOption = new EndApplicationOption();

            OptionsDispatcher optionsDispatcher = new OptionsDispatcher(new[]
              {
            addTodoOption,
            addMeetingOption,
            listEventsOption,
            endApplicationOption,
              },
              Console.In,
              logger);

            bool result = true;
            while (result)
            {
              result = optionsDispatcher.ChooseOptionAndRun();
            }
              }
        }