示例#1
0
        public void ShortCutStatistic_OnAMonth_ShouldSumCorrect()
        {
            var abbr = new List <ShortCut>();

            abbr.Add(new ShortCut("ctb", "11111-111"));
            WorkDayParserSettings workDayParserSettings = new WorkDayParserSettings {
                ShortCuts = abbr, InsertDayBreak = false
            };
            WorkDayParser wdp = new WorkDayParser(workDayParserSettings);

            WorkDayParser.Instance = wdp;
            WorkMonth wm = new WorkMonth(2011, 1, null, workDayParserSettings, 1);
            WorkDay   wd = wm.Days.First();

            wd.OriginalString = "8,8;ctb";

            wm.CalcShortCutStatistic();
            var scs = wm.ShortCutStatistic.FirstOrDefault(s => s.Key == "ctb");

            Assert.NotNull(scs);
            Assert.AreEqual(8, scs.UsedInMonth);
        }
示例#2
0
        public void WDParser_HoleDayExpansionAndNormalExpansionShareSameKey_ReturnBothExpansions()
        {
            var abbr = new List <ShortCut>();

            abbr.Add(new ShortCut("a", "11111-111(b)")
            {
                WholeDayExpansion = false
            });
            abbr.Add(new ShortCut("a", "8,8;11111-111(b)")
            {
                WholeDayExpansion = true
            });
            WorkDayParserSettings workDayParserSettings = new WorkDayParserSettings {
                ShortCuts = abbr
            };
            WorkDayParser wdp = new WorkDayParser(workDayParserSettings);
            // find wholeday expansion
            WorkDay wd = new WorkDay(1, 1, 1, null);
            var     workItemParserResult = wdp.Parse("a", ref wd);

            Assert.IsTrue(workItemParserResult.Success, workItemParserResult.Error);
            CollectionAssert.IsNotEmpty(wd.Items);
            CollectionAssert.AreEqual(new[] {
                new WorkItem(new TimeItem(8), new TimeItem(16), "11111", "111", "b")
            }, wd.Items);
            Assert.IsEmpty(workItemParserResult.Error);
            Assert.AreEqual(8, wd.HoursDuration);

            // find normal expansion
            wd = new WorkDay(1, 1, 2, null);
            workItemParserResult = wdp.Parse("8,8;a", ref wd);
            Assert.IsTrue(workItemParserResult.Success, workItemParserResult.Error);
            CollectionAssert.IsNotEmpty(wd.Items);
            CollectionAssert.AreEqual(new[] {
                new WorkItem(new TimeItem(8), new TimeItem(16), "11111", "111", "b")
            }, wd.Items);
            Assert.IsEmpty(workItemParserResult.Error);
            Assert.AreEqual(8, wd.HoursDuration);
        }
示例#3
0
        public void WDParser_ShortcutLinkInWorkItem_NormalShortcut_WithBlank()
        {
            WorkDay wd       = new WorkDay(1, 1, 1, null);
            var     abbr     = new List <ShortCut>();
            var     shortCut = new ShortCut("a", "11111-111(aa)");

            abbr.Add(shortCut);
            WorkDayParserSettings workDayParserSettings = new WorkDayParserSettings {
                ShortCuts = abbr
            };
            WorkDayParser wdp = new WorkDayParser(workDayParserSettings);
            var           workItemParserResult = wdp.Parse("8,8;a (+blabla)", ref wd);

            Assert.IsTrue(workItemParserResult.Success, workItemParserResult.Error);
            CollectionAssert.IsNotEmpty(wd.Items);
            CollectionAssert.AreEqual(new[] {
                new WorkItem(new TimeItem(8), new TimeItem(16), "11111", "111", "aablabla")
            }, wd.Items);
            Assert.IsEmpty(workItemParserResult.Error);
            Assert.AreEqual(8, wd.HoursDuration);
            Assert.AreEqual(shortCut, wd.Items.First().ShortCut);
        }
示例#4
0
        public void WDParser_UsingEndTimeAndBreak_CalculateBreak()
        {
            WorkDay wd   = new WorkDay(1, 1, 1, null);
            var     abbr = new List <ShortCut>();

            abbr.Add(new ShortCut("ctb", "11111-111"));
            abbr.Add(new ShortCut("ktl", "22222-222"));
            WorkDayParserSettings workDayParserSettings = new WorkDayParserSettings {
                ShortCuts = abbr, DayBreakDurationInMinutes = 30, InsertDayBreak = true, DayBreakTime = new TimeItem(12)
            };
            WorkDayParser wdp = new WorkDayParser(workDayParserSettings);
            var           workItemParserResult = wdp.Parse("9:00,-14;ctb,-16;ktl", ref wd);

            Assert.IsTrue(workItemParserResult.Success, workItemParserResult.Error);
            CollectionAssert.IsNotEmpty(wd.Items);
            CollectionAssert.AreEqual(new[] {
                new WorkItem(new TimeItem(9, 0), new TimeItem(12, 0), "11111", "111"),
                new WorkItem(new TimeItem(12, 30), new TimeItem(14, 0), "11111", "111"),
                new WorkItem(new TimeItem(14, 0), new TimeItem(16, 0), "22222", "222")
            }, wd.Items);
            Assert.IsEmpty(workItemParserResult.Error);
        }
示例#5
0
        public void WDParser_HoleDayExpansion_UseCompleteString()
        {
            WorkDay wd   = new WorkDay(1, 1, 1, null);
            var     abbr = new List <ShortCut>();

            abbr.Add(new ShortCut("krank", "8,8;11111-111(krank)")
            {
                WholeDayExpansion = true
            });
            WorkDayParserSettings workDayParserSettings = new WorkDayParserSettings {
                ShortCuts = abbr
            };
            WorkDayParser wdp = new WorkDayParser(workDayParserSettings);
            var           workItemParserResult = wdp.Parse("krank", ref wd);

            Assert.IsTrue(workItemParserResult.Success, workItemParserResult.Error);
            CollectionAssert.IsNotEmpty(wd.Items);
            CollectionAssert.AreEqual(new[] {
                new WorkItem(new TimeItem(8), new TimeItem(16), "11111", "111", "krank")
            }, wd.Items);
            Assert.IsEmpty(workItemParserResult.Error);
            Assert.AreEqual(8, wd.HoursDuration);
        }