Esempio n. 1
0
 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";
 }
Esempio n. 2
0
 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" } });
 }
Esempio n. 3
0
 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" } });
 }
Esempio n. 4
0
 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" } });
 }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
 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";
 }
Esempio n. 7
0
 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();
 }
Esempio n. 8
0
 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");
 }
Esempio n. 9
0
 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");
     }
 }
Esempio n. 10
0
 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");
 }
Esempio n. 11
0
 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");
 }
Esempio n. 12
0
 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);
 }
Esempio n. 13
0
 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");
 }
Esempio n. 14
0
 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");
     }
 }
Esempio n. 15
0
 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");
 }
Esempio n. 16
0
 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");
     }
 }
Esempio n. 17
0
 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");
     }
 }
Esempio n. 18
0
 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();
 }
Esempio n. 19
0
 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>");
 }
Esempio n. 20
0
 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()));
 }
Esempio n. 21
0
 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];
     }
 }
Esempio n. 22
0
 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();
     }
 }
Esempio n. 23
0
 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");
     }
 }
Esempio n. 24
0
 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();
     }
 }
Esempio n. 25
0
 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");
     }
 }
Esempio n. 26
0
 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>");
 }
Esempio n. 27
0
 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);
 }
Esempio n. 28
0
 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");
     }
 }
Esempio n. 29
0
 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");
 }
Esempio n. 30
0
 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);
 }