public void RunnersToStatusesConverterTest() { RunnersToStatusesConverter runnersToStatusesConverter = new RunnersToStatusesConverter(); runnersToStatusesConverter.ProvideValue(null).Should().Be(runnersToStatusesConverter); runnersToStatusesConverter.Convert(new object[] { null, null }, typeof(IEnumerable), null, null).Should().BeNull(); BindableCollection <RunnerViewModel> runners = new BindableCollection <RunnerViewModel>(); RunnerViewModel runner1 = new RunnerViewModel { ConnectionId = "conn1", Name = "Runner 1" }; RunnerViewModel runner2 = new RunnerViewModel { ConnectionId = "conn2", Name = "Runner 2" }; runners.Add(runner1); runners.Add(runner2); BindableDictionary <string, SpecStatusViewModel> statuses = new BindableDictionary <string, SpecStatusViewModel>(); statuses.Add("conn1", new SpecStatusViewModel { Status = SpecStatus.Passed, Time = 1, Duration = 1, Runner = runner1 }); statuses.Add("conn2", new SpecStatusViewModel { Status = SpecStatus.Failed, Time = 2, Duration = 2, Runner = runner2 }); object result = runnersToStatusesConverter.Convert(new object[] { runners, statuses }, typeof(IEnumerable), null, null); result.Should().BeAssignableTo <IEnumerable <SpecStatusViewModel> >(); (result as IEnumerable <SpecStatusViewModel>).ShouldAllBeEquivalentTo(new object[] { new { Status = SpecStatus.Passed, Time = 1, Duration = 1, Runner = runner1 }, new { Status = SpecStatus.Failed, Time = 2, Duration = 2, Runner = runner2 } }, o => o.Excluding(si => si.PropertyPath.EndsWith("IsNotifying") || si.PropertyPath.EndsWith("Steps") || si.PropertyPath.EndsWith("Description") || si.PropertyPath.EndsWith("DurationText"))); runners.Add(new RunnerViewModel { ConnectionId = "conn3", Name = "Runner 3" }); result = runnersToStatusesConverter.Convert(new object[] { runners, statuses }, typeof(IEnumerable), null, null); result.Should().BeAssignableTo <IEnumerable <SpecStatusViewModel> >(); (result as IEnumerable <SpecStatusViewModel>).ShouldAllBeEquivalentTo(new object[] { new { Status = SpecStatus.Passed, Time = 1, Duration = 1, Runner = runner1 }, new { Status = SpecStatus.Failed, Time = 2, Duration = 2, Runner = runner2 }, null }, o => o.Excluding(si => si.PropertyPath.EndsWith("IsNotifying") || si.PropertyPath.EndsWith("Steps") || si.PropertyPath.EndsWith("Description") || si.PropertyPath.EndsWith("DurationText"))); runnersToStatusesConverter.ConvertBack(null, null, null, null).Should().BeNull(); }
public void TestBindViaBindTarget() { BindableDictionary <string, byte> parentBindable = new BindableDictionary <string, byte>(); BindableDictionary <string, byte> bindable1 = new BindableDictionary <string, byte>(); BindableDictionary <string, byte> bindable2 = new BindableDictionary <string, byte>(); bindable1.BindTarget = parentBindable; bindable2.BindTarget = parentBindable; parentBindable.Add("5", 1); Assert.That(bindable1["5"], Is.EqualTo(1)); Assert.That(bindable2["5"], Is.EqualTo(1)); }
public void TestBindViaBindTarget() { BindableDictionary <int, string> parentBindable = new BindableDictionary <int, string>(); BindableDictionary <int, string> bindable1 = new BindableDictionary <int, string>(); IBindableDictionary <int, string> bindable2 = new BindableDictionary <int, string>(); bindable1.BindTarget = parentBindable; bindable2.BindTarget = parentBindable; parentBindable.Add(5, "Test"); Assert.That(bindable1[5], Is.EqualTo("Test")); Assert.That(bindable2[5], Is.EqualTo("Test")); }
public void TestClearNotifiesBoundBindable() { var bindableDict = new BindableDictionary <string, byte>(); bindableDict.BindTo(bindableStringByteDictionary); for (byte i = 0; i < 5; i++) { bindableStringByteDictionary.Add($"testA{i}", i); } for (byte i = 0; i < 5; i++) { bindableDict.Add($"testB{i}", i); } bindableStringByteDictionary.Clear(); Assert.IsEmpty(bindableDict); }
public void TestClearNotifiesBoundBindable() { var bindableList = new BindableDictionary <int, string>(); bindableList.BindTo(bindableStringDictionary); for (int i = 0; i < 5; i++) { bindableStringDictionary.Add(i, "testA"); } for (int i = 0; i < 5; i++) { bindableList.Add(i + 5, "testA"); } bindableStringDictionary.Clear(); Assert.IsEmpty(bindableList); }
public void CheckLyrics(List <Lyric> lyrics, LyricCheckProperty checkProperty = LyricCheckProperty.All) { if (lyrics == null) { throw new ArgumentNullException(nameof(lyrics)); } if (lyricChecker == null) { throw new NullReferenceException(nameof(lyricChecker)); } // re-calculate and add foreach (var lyric in lyrics) { // create report record if not have. if (!BindableReports.Contains(lyric)) { BindableReports.Add(lyric, new LyricCheckReport(lyric)); } var report = BindableReports[lyric]; if (checkProperty.HasFlag(LyricCheckProperty.Time)) { report.TimeInvalid = lyricChecker.CheckInvalidLyricTime(lyric); } if (checkProperty.HasFlag(LyricCheckProperty.TimeTag)) { report.InvalidTimeTags = lyricChecker.CheckInvalidTimeTags(lyric); } if (checkProperty.HasFlag(LyricCheckProperty.Ruby)) { report.InvalidRubyTags = lyricChecker.CheckInvalidRubyTags(lyric); } if (checkProperty.HasFlag(LyricCheckProperty.Romaji)) { report.InvalidRomajiTags = lyricChecker.CheckInvalidRomajiTags(lyric); } } }
public void TestClearDoesNotNotifyBoundBindablesBeforeClear() { var bindableDictA = new BindableDictionary <string, byte>(); bindableDictA.BindTo(bindableStringByteDictionary); var bindableDictB = new BindableDictionary <string, byte>(); bindableDictB.BindTo(bindableStringByteDictionary); var bindableDictC = new BindableDictionary <string, byte>(); bindableDictC.BindTo(bindableStringByteDictionary); for (byte i = 0; i < 5; i++) { bindableStringByteDictionary.Add($"testA{i}", i); } for (byte i = 0; i < 5; i++) { bindableDictA.Add($"testB{i}", i); } for (byte i = 0; i < 5; i++) { bindableDictB.Add($"testC{i}", i); } for (byte i = 0; i < 5; i++) { bindableDictC.Add($"testD{i}", i); } Assert.Multiple(() => { Assert.IsNotEmpty(bindableDictA); Assert.IsNotEmpty(bindableDictB); Assert.IsNotEmpty(bindableDictC); }); bindableStringByteDictionary.Clear(); }
public void TestClearDoesNotNotifyBoundBindablesBeforeClear() { var bindableListA = new BindableDictionary <int, string>(); bindableListA.BindTo(bindableStringDictionary); var bindableListB = new BindableDictionary <int, string>(); bindableListB.BindTo(bindableStringDictionary); var bindableListC = new BindableDictionary <int, string>(); bindableListC.BindTo(bindableStringDictionary); for (int i = 0; i < 5; i++) { bindableStringDictionary.Add(i, "testA"); } for (int i = 0; i < 5; i++) { bindableListA.Add(i + 5, "testA"); } for (int i = 0; i < 5; i++) { bindableListB.Add(i + 10, "testA"); } for (int i = 0; i < 5; i++) { bindableListC.Add(i + 15, "testA"); } Assert.Multiple(() => { Assert.IsNotEmpty(bindableListA); Assert.IsNotEmpty(bindableListB); Assert.IsNotEmpty(bindableListC); }); bindableStringDictionary.Clear(); }
public void TestGetRetrievesObjectAtIndex() { bindableStringByteDictionary.Add("0", 0); bindableStringByteDictionary.Add("1", 1); bindableStringByteDictionary.Add("2", 2); Assert.AreEqual(1, bindableStringByteDictionary["1"]); }