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));
}
}