public void Translating_ValidSub_Passes() { var validSub = SubtitleContainer.GetSubtitleFromFile(SubtitleContainer.ValidShortSubtitleName); var validSubClone = (ISubtitle)validSub.Clone(); var subtitleTranslator = new SubtitleTranslatorAction(validSub, new CultureInfo("no")); subtitleTranslator.PerformAction( () => { Assert.True( validSub.Items.Count == validSubClone.Items.Count, "Item count after translation changed"); var hasDifferentLines = false; for (var i = 0; i < validSub.Items.Count; i++) { if (!string.Equals(validSub.Items[i].ToString(), validSubClone.Items[i].ToString())) { hasDifferentLines = true; break; } } Assert.True(hasDifferentLines); }); }
public void PerformAction() { var subtitleCreator = new SubtitleCreator(); var subtitle = subtitleCreator.CreateFromFile(File.OpenRead(_sourceFile)); if (_timeOffset != 0) { Console.WriteLine("Offsetting your subtitle by " + _timeOffset + " seconds"); var timeOffsetAction = new SubtitleTimeOffsetAction(TimeSpan.FromSeconds(_timeOffset), subtitle); timeOffsetAction.PerformAction(); } if (!string.IsNullOrEmpty(_language)) { var culture = new CultureInfo(_language); var translatorAction = new SubtitleTranslatorAction(subtitle, culture); var reset = new ManualResetEvent(false); Console.WriteLine("Translating your subtitle to " + culture.EnglishName); Console.WriteLine("Please wait..."); translatorAction.PerformAction( () => { SaveSubtitleToOutput(subtitle, _destination); reset.Set(); }); reset.WaitOne(); } else { SaveSubtitleToOutput(subtitle, _destination); } }