using System; using Paca.Mobile.Core; using Xunit; namespace Paca.Tests.Core; public class SubtitleFormatConverterGateTests { [Fact] public void Gate345_SubtitleFormatConverter_ConvertsSrtToVtt_Correctly() { var srt = @"1 00:00:01,234 --> 00:00:04,567 Hello world! 2 00:00:05,000 --> 00:00:08,100 Welcome to Paca."; var vtt = SubtitleFormatConverter.ConvertSrtToVtt(srt); Assert.StartsWith("WEBVTT", vtt.TrimStart()); Assert.Contains("00:00:01.234 --> 00:00:04.567", vtt); Assert.Contains("00:00:05.000 --> 00:00:08.100", vtt); Assert.DoesNotContain(",234", vtt); } [Fact] public void Gate346_SubtitleFormatConverter_ConvertsVttToSrt_Correctly() { var vtt = @"WEBVTT 00:00:01.234 --> 00:00:04.567 Hello world! 00:00:05.000 --> 00:00:08.100 Welcome to Paca."; var srt = SubtitleFormatConverter.ConvertVttToSrt(vtt); Assert.DoesNotContain("WEBVTT", srt); Assert.Contains("1\n00:00:01,234 --> 00:00:04,567", srt.Replace("\r\n", "\n")); Assert.Contains("00:00:01,234 --> 00:00:04,567", srt); Assert.Contains("00:00:05,000 --> 00:00:08,100", srt); } [Fact] public void Gate347_SubtitleFormatConverter_StripsFormattingTags_Cleanly() { var formatted = "Hello World & enjoy!"; var clean = SubtitleFormatConverter.StripFormattingTags(formatted); Assert.Equal("Hello World & enjoy!", clean); } [Fact] public void Gate348_SubtitleFormatConverter_HandlesEmptyAndWhitespaceGracefully() { Assert.Equal(string.Empty, SubtitleFormatConverter.ConvertSrtToVtt(string.Empty)); Assert.Equal(string.Empty, SubtitleFormatConverter.ConvertVttToSrt(string.Empty)); Assert.Equal(string.Empty, SubtitleFormatConverter.StripFormattingTags(string.Empty)); } }