public void DeleteEventsByTitle_ValidInputAndValidDeleting()
        {
            string dateTimeFormat = "yyyy-MM-ddTHH:mm:ss";
            int numberOfAddedEvents = 50;
            int numberOfOtherEvents = 20;

            string date = "2012-01-21T20:00:00";
            DateTime eventDate = DateTime.ParseExact(date, dateTimeFormat, CultureInfo.InvariantCulture);
            string eventTitle = "party Viki";
            Event currentEvent = new Event(eventDate, eventTitle);

            EventsManager currentEventManager = new EventsManager();
            for (int i = 0; i < numberOfAddedEvents; i++)
            {
                currentEventManager.AddEvent(currentEvent);
            }

            string otherDate = "2015-01-21T20:00:00";
            DateTime otherEventDate = DateTime.ParseExact(otherDate, dateTimeFormat, CultureInfo.InvariantCulture);
            string otherEventTitle = "C# exam";
            Event otherEvent = new Event(otherEventDate, otherEventTitle);
            for (int i = 0; i < numberOfOtherEvents; i++)
            {
                currentEventManager.AddEvent(otherEvent);
            }

            int deletedEvents = currentEventManager.DeleteEventsByTitle(eventTitle);
            bool isNumberOfDeletedEventsCorrect = deletedEvents == numberOfAddedEvents;

            Assert.IsTrue(isNumberOfDeletedEventsCorrect, "Number of deleted events is incorect!");
        }
        internal static void Main()
        {
            var eventManager = new EventsManager();
            var commandDispatcher = new CommandDispatcher(eventManager);

            while (true)
            {
                string consoleInput = Console.ReadLine();

                if (string.IsNullOrWhiteSpace(consoleInput) || consoleInput == "End")
                {
                    break;
                }

                try
                {
                    var command = Command.Parse(consoleInput);
                    var commandResult = commandDispatcher.ProcessCommand(command);

                    Console.WriteLine(commandResult);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
Exemple #3
0
        internal static void Main()
        {
            //Bottleneck
            //In the class EventsManager, the method ListEvents() is slow, because the sorting.
            //The solution is to use the class EventsManagerFast
            IEventsManager eventManager = new EventsManager();
            EventCommand eventCommand = new EventCommand(eventManager);

            while (true)
            {
                string input = Console.ReadLine();
                if (input == "End" || input == null)
                {
                    break;
                }

                try
                {
                    var parsedCommand = Command.Parse(input);
                    var command = eventCommand.ProcessCommand(parsedCommand);
                    Console.WriteLine(command);
                }
                catch (Exception ex)
                {
                    throw new ArgumentException(ex.Message);
                }
            }
        }
        public void ListEvents_CountIsBigger()
        {
            string dateTimeFormat = "yyyy-MM-ddTHH:mm:ss";
            int numberOfAddedEvents = 50;
            int numberOfOtherEvents = 20;

            string date = "2012-01-21T20:00:00";
            DateTime eventDate = DateTime.ParseExact(date, dateTimeFormat, CultureInfo.InvariantCulture);
            string eventTitle = "party Viki";
            Event currentEvent = new Event(eventDate, eventTitle);

            EventsManager currentEventManager = new EventsManager();
            for (int i = 0; i < numberOfAddedEvents; i++)
            {
                currentEventManager.AddEvent(currentEvent);
            }

            string otherDate = "2015-01-21T20:00:00";
            DateTime otherEventDate = DateTime.ParseExact(otherDate, dateTimeFormat, CultureInfo.InvariantCulture);
            string otherEventTitle = "C# exam";
            Event otherEvent = new Event(otherEventDate, otherEventTitle);
            for (int i = 0; i < numberOfOtherEvents; i++)
            {
                currentEventManager.AddEvent(otherEvent);
            }

            IEnumerable<Event> foundEvents = currentEventManager.ListEvents(eventDate, 20);
            bool isNumberOfFoundEventsCorrect = foundEvents.Count() == 20;

            Assert.IsTrue(isNumberOfFoundEventsCorrect, "Number of found events is incorect!");
        }
        public void AddEventEmptyTitleTest()
        {
            EventsManager manager = new EventsManager();
            Event occasion = new Event("", "location", DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>)GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
            Assert.AreNotEqual(1, testObj.Count);
        }
        public void EventManagerAddEvent()
        {
            Event e = new Event();

            e.Date = new DateTime(2000, 10, 10);
            e.Location = "Pri baba";
            e.Title = "Grupovo gushene na patki :)))";

            EventsManager eventsManager = new EventsManager();
            eventsManager.AddEvent(e);
        }
        public void AddEventInvalidFormatLocationTest()
        {
            EventsManager manager = new EventsManager();
            string location = "  l| \n ocation  ";

            Event occasion = new Event("title", location, DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>)GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
            Assert.AreNotEqual(1, testObj.Count);
        }
        public void AddEventInvalidFormatTitleTest()
        {
            EventsManager manager = new EventsManager();
            string title = "  t| \n itle  ";

            Event occasion = new Event(title.ToString(), "location", DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>)GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
            Assert.AreNotEqual(1, testObj.Count);
        }
        public void EventManagerDeleteEventByTitleOneEvent()
        {
            Event e = new Event();

            e.Date = new DateTime(2000, 10, 10);
            e.Location = "Pri baba";
            e.Title = "Grupovo gushene na patki :)))";

            EventsManager eventsManager = new EventsManager();
            eventsManager.AddEvent(e);

            var expected = eventsManager.DeleteEventsByTitle(e.Title);
            Assert.AreEqual(expected, 1);
        }
        public void AddEventTooLongTitleTest()
        {
            EventsManager manager = new EventsManager();
            StringBuilder title = new StringBuilder();
            for (int i = 0; i <= 200; i++)
            {
                title.Append("title");
            }
            Event occasion = new Event(title.ToString(), "location", DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>) GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
               Assert.AreNotEqual(1, testObj.Count);
        }
        public void EventManagerListEventsOneWithLocation()
        {
            EventsManager eventsManager = new EventsManager();
            var date = DateTime.Now;
            var location = "Location";
            var title = "Title";
            var firstEvent = new Event()
                                 {
                                     Date = DateTime.Now,
                                     Location = location,
                                     Title = title
                                 };

            eventsManager.AddEvent(firstEvent);
            var expected = eventsManager.ListEvents(date, 1);
            Assert.AreEqual(expected.First().ToString(), firstEvent.ToString());
        }
        internal static void Main()
        {
            var eventsManager = new EventsManager();
            var processor = new CommandProcessor(eventsManager);

            while (true)
            {
                string inputCommand = Console.ReadLine();
                if (inputCommand == "End" || inputCommand == null)
                {
                    break;
                }

               // Read sequence of commands, untill is finished and display results
               Console.WriteLine(processor.ProcessCommand(Command.Parse(inputCommand)));
            }
        }
        public void AddEvent_ValidInput()
        {
            string dateTimeFormat = "yyyy-MM-ddTHH:mm:ss";
            string date = "2012-01-21T20:00:00";
            DateTime eventDate = DateTime.ParseExact(date, dateTimeFormat, CultureInfo.InvariantCulture);
            string eventTitle = "party Viki";
            Event currentEvent = new Event(eventDate, eventTitle);

            EventsManager currentEventManager = new EventsManager();
            currentEventManager.AddEvent(currentEvent);

            IEnumerable<Event> actualOutputList = currentEventManager.ListEvents(eventDate, 5);
            int numberOfAddedEvents = actualOutputList.Count();
            bool isCountValid = numberOfAddedEvents == 1;

            bool isOutputEventValid = actualOutputList.First() == currentEvent;

            bool isAddCorrect = isCountValid && isOutputEventValid;

            Assert.IsTrue(isAddCorrect, "Adding valid event is incorect.");
        }
        public void EventManagerDeleteEventByTitleMultipleEvents()
        {
            EventsManager eventsManager = new EventsManager();
            var title = "Grupovo gushene na patki :)))";

            for (var i = 0; i < 10; i++)
            {
                Event e = new Event
                              {
                                  Date = new DateTime(2000 + i, 10, 10 + i),
                                  Location = "Pri baba" + i,
                                  Title = title
                              };


                eventsManager.AddEvent(e);
            }

            var expected = eventsManager.DeleteEventsByTitle(title);
            Assert.AreEqual(expected, 10);
        }
        internal static void Main()
        {
            IEventsManager eventsManager = new EventsManager();
            CommandParser parser = new CommandParser(eventsManager);

            while (true)
            {
                string command = Console.ReadLine();
                if (command == "End" || command == null)
                {
                    break;
                }

                try
                {
                    Console.WriteLine(parser.ProcessCommand(Command.Parse(command)));
                }
                catch (ArgumentException)
                {
                    Console.WriteLine("You've entered and invalid command.");
                }
            }
        }
Exemple #16
0
        public static void StartIteraction()
        {
            var eventManager = new EventsManager();
            var commandExecutor = new CommandExecutor(eventManager);

            while (true)
            {
                string currentLineCommand = Console.ReadLine();
                if (currentLineCommand == "End" || currentLineCommand == null)
                {
                    break;
                }

                try
                {
                    Console.WriteLine(commandExecutor.ProcessCommand(Command.Parse(currentLineCommand)));
                }
                catch (ArgumentException ex)
                {
                    throw new ArgumentException("Command cannot be executed.\n{0}", ex);
                }
            }
        }
        internal static void Main()
        {
            EventsManager eventsManager = new EventsManager();
            CalendarSystemProcessor processor = new CalendarSystemProcessor(eventsManager);

            while (true)
            {
                string cmd = Console.ReadLine();
                if (cmd == "End" || cmd == null)
                {
                    break;
                }

                try
                {
                    Console.WriteLine(processor.ProcessCommand(Command.Parse(cmd)));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

        }
        public void DeleteNotExistingEventTest()
        {
            EventsManager manager = new EventsManager();

            int result = manager.DeleteEventsByTitle("title");
            Assert.AreEqual(0, result);
        }
        public void EventManagerListEventsMultipleWithLocation()
        {
            EventsManager eventsManager = new EventsManager();
            var date = DateTime.Now;
            var location = "Location";
            var title = "Title";
            var firstEvent = new Event()
                                 {
                                     Date = DateTime.Now,
                                     Location = location,
                                     Title = title
                                 };

            var secondEvent = new Event()
                                {
                                    Date = DateTime.Now,
                                    Location = location,
                                    Title = "Obicham grozde"
                                };

            eventsManager.AddEvent(firstEvent);
            eventsManager.AddEvent(secondEvent);

            var expected = eventsManager.ListEvents(date, 3).Select(e => e.ToString());
            var real = new List<Event> { secondEvent, firstEvent }.Select(e => e.ToString());

            Assert.AreEqual(string.Join(Environment.NewLine, expected), string.Join(Environment.NewLine, real));
        }
 public void AddEventValidFormatTest()
 {
     EventsManager manager = new EventsManager();
     Event occasion = new Event("title", "location", DateTime.Now);
     manager.AddEvent(occasion);
     Console.WriteLine();
 }
        public void DeleteValidEventTest()
        {
            EventsManager manager = new EventsManager();
            //reflection test object
            Event occasion = new Event("title", "location", DateTime.Now);
            MultiDictionary<string, Event> dummyDictionary = new MultiDictionary<string,Event>(true);
            dummyDictionary.Add("title", occasion);
            FieldInfo fieldInfo = manager.GetType().GetField("_eventsDictionary", BindingFlags.Instance | BindingFlags.NonPublic);
            fieldInfo.SetValue(manager, dummyDictionary);

            int result = manager.DeleteEventsByTitle("title");
            Assert.AreEqual(1, result);
        }
        public void ListValidEventsTest()
        {
            EventsManager manager = new EventsManager();
            //reflection test object
            Event occasion = new Event("title", "location", DateTime.Now.AddDays(1));
            Event occasion1 = new Event("title1", "location1", DateTime.Now.AddDays(2));
            Event occasion2 = new Event("title2", "location2", DateTime.Now.AddDays(3));
            Event occasion3 = new Event("title3", "location3", DateTime.Now.AddDays(4));

            OrderedMultiDictionary<DateTime, Event> dummyOrderedDictionary = new OrderedMultiDictionary<DateTime, Event>(true);
            dummyOrderedDictionary.Add(DateTime.Now.AddDays(1), occasion);
            dummyOrderedDictionary.Add(DateTime.Now.AddDays(2), occasion1);
            dummyOrderedDictionary.Add(DateTime.Now.AddDays(3), occasion2);
            dummyOrderedDictionary.Add(DateTime.Now.AddDays(4), occasion3);
            FieldInfo fieldInfo = manager.GetType().GetField("_orderedEvents", BindingFlags.Instance | BindingFlags.NonPublic);
            fieldInfo.SetValue(manager, dummyOrderedDictionary);

            var result = manager.ListEvents(DateTime.Now, 4);
            Assert.AreEqual(4, result.Count());
        }
        public void ListEventsTooBigCountTest()
        {
            EventsManager manager = new EventsManager();
            //reflection test object
            Event occasion = null;
            OrderedMultiDictionary<DateTime, Event> dummyOrderedDictionary = new OrderedMultiDictionary<DateTime, Event>(true);

            for (int i = 0; i < 105; i++)
            {
                occasion = new Event("title" + i, "location" + i, DateTime.Now.AddHours(i));
                dummyOrderedDictionary.Add(DateTime.Now.AddHours(i), occasion);
                occasion = null;
            }

            FieldInfo fieldInfo = manager.GetType().GetField("_orderedEvents", BindingFlags.Instance | BindingFlags.NonPublic);
            fieldInfo.SetValue(manager, dummyOrderedDictionary);

            var result = manager.ListEvents(DateTime.Now, 101);
            Assert.AreEqual(0, result.Count());
        }