public string Execute(Arguments arg, Stream stream) { var repository = new RepositoryXML(stream); var activities = repository.List(); foreach(var activity in activities) { repository.Delete(activity.List()["id"]); } return "Clear all activities"; }
public void Throw_InvalidFormat_Exception_if_try_to_change_a_date_with_invalid_format_of_date() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.11.2015 22:11:20" }, {"message","Old activity" } }; text.Add(new Activity(activity)); text.Change("12345678",new Dictionary<string, string> { { "date", "11.12.yyyy" } }); }
public void Throw_InvalidID_Exception_if_try_to_change_an_invalid_ID() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.11.2015 22:11:20" }, {"message","Old activity" } }; text.Add(new Activity(activity)); text.Change("12345677",new Dictionary<string, string> { { "message", "This is the message" } }); }
public void Repository_change_date_throw_InvalidFormat_Exception_if_date_format_is_not_valid() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.12.2015 22:11:2015" }, {"message","Old activity" } }; text.Add(new Activity(activity)); text.Change("12345678", new Dictionary<string, string> { { "date", "25.25.2002" } }); }
public string Execute(Arguments arg, Stream stream) { var builder = new StringBuilder(); var list = new RepositoryXML(stream).List(); if (arg["[week]"] == "true") list = new RepositoryXML(stream).ListWeek(); else if (arg["[html]"] == "true") { var pathHTML = Directory.GetCurrentDirectory() + @"\RazvanHTML.html"; var streamHTML = File.Open(pathHTML, FileMode.Create); var html = new DocumentHTML(streamHTML); html.Add(list); return "HTML Document create"; } else if (arg["[csv]"] == "true") { var pathCSV = Directory.GetCurrentDirectory() + @"\RazvanCSV.csv"; var streamCSV = File.Open(pathCSV, FileMode.Create); var csv = new DocumentCSV(streamCSV); csv.Add(list); return "CSV Document create"; } else if (arg["[projects]"] == "true") { var projects = new RepositoryXML(stream).ListProject(); foreach (var project in projects) { if (builder.Length == 0) SpacingProj(builder, project, true); SpacingProj(builder, project); } return builder.ToString(); } else if (arg["[--project:<project>]"] != "") { list = new RepositoryXML(stream).ListProjectActivities(arg["[--project:<project>]"]); } foreach (var activity in list) { if (builder.Length == 0) Spacing(builder, activity, true); Spacing(builder, activity); } return builder.ToString(); }
public string Execute(Arguments arg, Stream stream) { var repository = new RepositoryXML(stream); var activity=new Dictionary<string,string> (); foreach (var element in command.Split(' ')) if (arg[element] != "") { var start = element.IndexOf('<') + 1; var end = element.IndexOf('>'); if (start!=0) { activity.Add(element.Substring(start, end - start), arg[element]); } } repository.Add(new Activity(activity)); return "Added a new activity"; }
public string Execute(Arguments arg, Stream stream) { var change = new StringBuilder(); change.Append("Change "); var repository = new RepositoryXML(stream); var modifiedElements = new Dictionary<string, string>(); foreach (var element in command.Split(' ')) if (arg[element] != ""&&element.StartsWith("[--")) { var start = element.IndexOf('<') + 1; var end = element.IndexOf('>'); modifiedElements.Add(element.Substring(start, end - start), arg[element]); change.Append($" {element.Substring(start, end - start).ToUpper()}"); } repository.Change(arg["<id>"], modifiedElements); return change.ToString(); }
public void Xml_Repository_Activity_Duration_calculation() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 10:11:00" }, {"message","Old activity" } }; text.Add(new Activity(activity)); var beforStremList = StreamList(text); beforStremList.ShouldContain("00h 00m"); text.Change("12345678", new Dictionary<string, string> { { "enddate", "13.11.2015 10:43:00" } }); var afterStremList = StreamList(text); afterStremList.ShouldContain("2d 00h 32m"); }
public void Should_change_activity_date() { using (var stream = new MemoryStream()) { GenerateActivity(stream); var repository = new RepositoryXML(stream); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.12.2015" }, {"message","Old message" } }; repository.Add(new Activity(activity)); var command = new Commands(new string[] { "change", "12345678", "--date:11.11.1010" }, stream); command.Execute(); ActivitysField(stream, "date").ShouldContain("11.11.1010 00:00:00"); } }
public void Xml_Repository_List_returns_a_list_of_activities() { var text = new RepositoryXML(new MemoryStream()); text.Add(new Activity("First add")); text.Add(new Activity("First adding")); text.Add(new Activity("Message is full")); var listContent = StreamList(text); listContent.ToString().ShouldContain("Message is full"); }
public void Xml_Repository_List_Activities_belong_to_a_given_project_throw_Invalid_name_of_project() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project One" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 22:46:00" }, {"message","Old activity" } }; text.Add(new Activity(activity));; text.ListProjectActivities("Project Ten"); }
public void Xml_Repository_List_Activities_belong_to_a_given_project() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project One" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 22:46:00" }, {"message","Old activity" } }; var activity1 = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project Ten" }, {"date","11.11.2015 5:11:00" }, {"enddate","11.11.2015 10:33:00" }, {"message","Activity 1" } }; var activity2 = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project One" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 23:56:00" }, {"message","activity3" } }; text.Add(new Activity(activity)); text.Add(new Activity(activity1)); text.Add(new Activity(activity2)); text.ListProjectActivities("Project Ten").Count.ShouldEqual(1); text.ListProjectActivities("Project One").Count.ShouldEqual(2); }
public void Xml_Repository_ListProject_if_duration_is_over_one_day_list_days() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project One" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 22:46:00" }, {"message","Old activity" } }; var activity1 = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project Ten" }, {"date","11.11.2015 5:11:00" }, {"enddate","11.11.2015 10:33:00" }, {"message","Activity 1" } }; var activity2 = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project One" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 23:56:00" }, {"message","activity3" } }; text.Add(new Activity(activity)); text.Add(new Activity(activity1)); text.Add(new Activity(activity2)); text.ListProject().Find(x => x.name.Contains("Project One")).List()["duration"].ShouldEqual("1d 02h 20m"); text.ListProject().Find(x => x.name.Contains("Project Ten")).List()["duration"].ShouldEqual("05h 22m"); }
public void Should_List_Table_Header_written_with_uppercase() { using (var stream = new MemoryStream()) { GenerateActivity(stream); var repository = new RepositoryXML(stream); repository.Add(new Activity("Testing")); var command = new Commands(new string[] { "list" }, stream); command.Execute().ShouldContain("ID"); command.Execute().ShouldContain("DATE"); } }
public void Xml_Repository_ListProject_count_activities_with_the_same_project_and_calculate_duration() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project One" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 11:46:00" }, {"message","Old activity" } }; var activity1 = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project Ten" }, {"date","11.11.2015 5:11:00" }, {"enddate","11.11.2015 10:33:00" }, {"message","Activity 1" } }; var activity2 = new Dictionary<string, string>() { {"id","12345678" }, {"project","Project One" }, {"date","11.11.2015 10:11:00" }, {"enddate","11.11.2015 14:56:00" }, {"message","activity3" } }; text.Add(new Activity(activity)); text.Add(new Activity(activity1)); text.Add(new Activity(activity2)); text.ListProject().Find(x => x.name.Contains("Project One")).List()["duration"].ShouldEqual("06h 20m"); text.ListProject().Find(x => x.name.Contains("Project Ten")).List()["duration"].ShouldEqual("05h 22m"); }
public void Should_show_the_help_message() { using (var stream = new MemoryStream()) { GenerateActivity(stream); var repository = new RepositoryXML(stream); var command = new Commands(new string[] { "help" }, stream); command.Execute().ShouldContain("list [week]"); command.Execute().ShouldContain("add"); } }
public void Should_list_activity_duration() { using (var stream = new MemoryStream()) { var repository = new RepositoryXML(stream); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.12.2015" }, {"enddate","12.12.2015 03:19:00" }, {"message","Old message" } }; repository.Add(new Activity(activity)); var command = new Commands(new string[] { "list" }, stream); var s = command.Execute(); command.Execute().ShouldContain("1d 03h 19m"); } }
private static string StreamList(RepositoryXML text) { var listContent = new StringBuilder(); foreach (var activity in text.List()) { foreach (var value in activity.List().Values) listContent.Append(value); } return listContent.ToString(); }
public void Xml_Repository_add_a_new_activity() { var memoryStream = new MemoryStream(); var text = new RepositoryXML(memoryStream); text.Add(new Activity("First add")); var memoryStreamContent = StreamContent(memoryStream); memoryStreamContent.ShouldContain("<message>First add</message>"); }
private static void GenerateActivity(MemoryStream stream) { var repository = new RepositoryXML(stream); for (int i = 1; i < 10; i++) repository.Add(new Activity("activity" + i.ToString())); }
private static IEnumerable<string> ActivitysField(MemoryStream stream, string field) { var repository = new RepositoryXML(stream); foreach (var activity in repository.List()) { yield return activity.List()[field]; } }
public void Should_throw_invalid_format_if_the_optional_command_date_is_not_valid_format() { using (var stream = new MemoryStream()) { var repository = new RepositoryXML(stream); var activity = new Dictionary<string, string> { {"id","12345678" }, {"project","n/a" }, {"date","11.12.2015" }, {"message","Old message" } }; repository.Add(new Activity(activity)); var command = new Commands(new string[] { "change", "12345678", "--date:date" }, stream); command.Execute(); } }
public void Should_throw_invalid_argument_if_optinal_argument_is_not_written_complet() { using (var stream = new MemoryStream()) { var repository = new RepositoryXML(stream); var command = new Commands(new string[] { "add", "--proj", "New message" }, stream); command.Execute(); ActivitysField(stream, "message").ShouldContain("New message"); } }
public void Should_throw_InvalidFormat_exception_if_try_to_change_Enddate_to_be_earlier_than_startDate() { using (var stream = new MemoryStream()) { var repository = new RepositoryXML(stream); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.12.2015" }, {"message","Old message" } }; repository.Add(new Activity(activity)); var command = new Commands(new string[] { "change", "12345678", "--project:Project OK", "--enddate:10.10.2002", "--message:New message" }, stream); command.Execute(); } }
public void Should_list_Projects_duration_and_name() { using (var stream = new MemoryStream()) { var repository = new RepositoryXML(stream); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","Razvan" }, {"date","11.12.2015" }, {"enddate","12.12.2015 " }, {"message","Old message" } }; var activity1 = new Dictionary<string, string>() { {"id","12345678" }, {"project","Razvan" }, {"date","11.12.2015" }, {"enddate","11.12.2015 02:19:00" }, {"message","Old message" } }; var activity2 = new Dictionary<string, string>() { {"id","12345678" }, {"project","New Project" }, {"date","11.12.2015" }, {"enddate","11.12.2015 03:57:00" }, {"message","Old message" } }; repository.Add(new Activity(activity)); repository.Add(new Activity(activity1)); repository.Add(new Activity(activity2)); var command = new Commands(new string[] { "list","projects" }, stream); var result = command.Execute(); result.ShouldContain("1d 02h 19m"); result.ShouldContain("Razvan"); result.ShouldContain("03h 57m"); result.ShouldContain("New Project"); } }
public void Xml_Repository_is_XML_format() { var memoryStream = new MemoryStream(); var text = new RepositoryXML(memoryStream); text.Add(new Activity("First add")); var memoryStreamContent = StreamContent(memoryStream); memoryStreamContent.ShouldContain("<repository>"); memoryStreamContent.ShouldContain("</repository>"); }
public void Xml_Repository_ListProject_count_activities_with_the_same_project() { var text = new RepositoryXML(new MemoryStream()); text.Add(new Activity("New activity", "Proj 1")); text.Add(new Activity("New activity1", "Proj 2")); text.Add(new Activity("New activity2", "Proj 1")); text.Add(new Activity("New activity3", "Proj 3")); text.Add(new Activity("New activity4", "Proj 1")); text.Add(new Activity("New activity4", "Proj 3")); text.ListProject().Find(x => x.name.Contains("Proj 1")).count.ShouldEqual(3); text.ListProject().Find(x => x.name.Contains("Proj 3")).count.ShouldEqual(2); text.ListProject().Find(x => x.name.Contains("Proj 2")).count.ShouldEqual(1); }
public void Should_list_the_activity_from_the_last_week() { using (var stream = new MemoryStream()) { GenerateActivity(stream); var repository = new RepositoryXML(stream); var date = DateTime.UtcNow.AddDays(-8).ToString(); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date",date }, {"message","Old message" } }; repository.Add(new Activity(activity)); activity["date"] = DateTime.UtcNow.ToString(); activity["message"] = "New Message"; repository.Add(new Activity(activity)); var command = new Commands(new string[] { "list", "week" }, stream); command.Execute().ShouldContain("New Message"); command.Execute().ShouldNotContain("Old Message"); } }
public void Xml_Repository_change_date() { var text = new RepositoryXML(new MemoryStream()); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.11.2015 22:11:25" }, {"message","Old activity" } }; text.Add(new Activity(activity)); var beforStremList = StreamList(text); beforStremList.ShouldContain("11.11.2015 22:11:25"); text.Change("12345678", new Dictionary<string, string> { { "date", "09.10.2002 12:11:23" } }); var afterStremList = StreamList(text); afterStremList.ShouldNotContain("11.11.2015 22:11:25"); afterStremList.ShouldContain("09.10.2002 12:11:23"); }
public void Xml_Repository_delete_activity() { var stream = new MemoryStream(); var text = new RepositoryXML(stream); var activity = new Dictionary<string, string>() { {"id","12345678" }, {"project","n/a" }, {"date","11.11.2015 22:11:25" }, {"message","Old activity" } }; text.Add(new Activity(activity)); var beforStremList = StreamList(text); beforStremList.ShouldContain("11.11.2015 22:11:25"); var streamLength = stream.Length; text.Delete("12345678"); streamLength.ShouldNotEqual(stream.Length); }