public void can_parse_correctly_formatted_input(string input, int[] expectedPeriodsBeforeMilliseconds, MetronomeTickType[] expectedTickTypes) { Assert.Equal(expectedPeriodsBeforeMilliseconds.Length, expectedTickTypes.Length); var result = MetronomeActionParser .GetParser( new AudioServiceMock(MockBehavior.Loose), new DelayServiceMock(MockBehavior.Loose), new LoggerServiceMock(MockBehavior.Loose)) .Parse(input); Assert.NotNull(result); Assert.Equal(expectedPeriodsBeforeMilliseconds.Length, result.Ticks.Count); Assert.True( expectedPeriodsBeforeMilliseconds .Select(x => TimeSpan.FromMilliseconds(x)) .SequenceEqual( result .Ticks .Select(x => x.PeriodBefore))); Assert.True( expectedTickTypes .SequenceEqual( result .Ticks .Select(x => x.Type))); }
public MetronomeTick(TimeSpan periodBefore, MetronomeTickType type = MetronomeTickType.Click) { this.periodBefore = periodBefore; this.type = type; }