public void Subtitle_IsOriginal_WhenActionUndone() { var subtitle = SubtitleContainer.GetSubtitleFromFile(SubtitleContainer.ValidSubtitleName); var offset = TimeSpan.FromSeconds(1); var timeOffsetAction = new SubtitleTimeOffsetAction(offset, subtitle); var originalStartTimes = subtitle.Items.Select(s => s.StartTime).ToArray(); var originalEndTimes = subtitle.Items.Select(s => s.EndTime).ToArray(); timeOffsetAction.PerformAction(); timeOffsetAction.UndoAction(); var newStartTimes = subtitle.Items.Select(s => s.StartTime).ToArray(); var newEndTimes = subtitle.Items.Select(s => s.EndTime).ToArray(); for (var i = 0; i < originalStartTimes.Length; i++) { var originalTime = originalStartTimes[i]; var newTime = newStartTimes[i]; Assert.True(newTime == originalTime); } for (var i = 0; i < originalEndTimes.Length; i++) { var originalTime = originalEndTimes[i]; var newTime = newEndTimes[i]; Assert.True(newTime == originalTime); } }
public void SubtitleAction_UndoAction_DoesCallback() { var validSubtitle = SubtitleContainer.GetSubtitleFromFile(SubtitleContainer.ValidSubtitleName); var subtitleAction = new SubtitleTimeOffsetAction(TimeSpan.FromSeconds(1), validSubtitle); var didCallback = false; subtitleAction.PerformAction(); subtitleAction.UndoAction(() => didCallback = true); Assert.True(didCallback); }