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); } } }
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."); } } }
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()); }