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); }
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); }
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); }
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); }
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); }