public void Map_Always_ReturnsUnvalidatedSubtitle() { var subtitleToMap = new Subtitle( new SubtitleId(1), new SubtitleTimestamps( TimestampTests.CreateTimestamp(1, 2, 3, 4), TimestampTests.CreateTimestamp(1, 2, 4, 0)), new SubtitleText( new List <CharacterLine> { new CharacterLine("A line"), new CharacterLine("Another line") })); var expectedUnvalidatedSubtitle = new UnvalidatedSubtitle( new List <CharacterLine> { new CharacterLine("1"), new CharacterLine("01:02:03,004 --> 01:02:04,000"), new CharacterLine("A line"), new CharacterLine("Another line") }); var stubTimestampsMapper = Substitute.For <ITimestampsMapper>(); stubTimestampsMapper .Map(Arg.Any <SubtitleTimestamps>()) .Returns(new CharacterLine("01:02:03,004 --> 01:02:04,000")); var mapper = new SubtitleToUnvalidatedMapper(stubTimestampsMapper); var actualUnvalidatedSubtitle = mapper.Map(subtitleToMap); Assert.AreEqual( expectedUnvalidatedSubtitle, actualUnvalidatedSubtitle); }
public void Parse_NullUnvalidatedSubtitle_Throws() { UnvalidatedSubtitle nullSubtitle = null; var parser = CreateParser(); Assert.Throws <ArgumentNullException>( () => parser.Parse(nullSubtitle)); }
public void Parse_LessThanThreeLinesSubtitle_ThrowsParsingException(List <CharacterLine> lines) { var subtitle = new UnvalidatedSubtitle(lines); var parser = CreateParser(); Assert.Throws <ParsingException>( () => parser.Parse(subtitle)); }
public void Parse_SuccessfulParsing_ReturnsSubtitle() { var subtitleToParse = new UnvalidatedSubtitle( new List <CharacterLine> { new CharacterLine("1"), new CharacterLine("00:00:01,100 --> 00:00:03,200"), new CharacterLine("Some text"), new CharacterLine("More text") }); var stubIdParser = Substitute.For <ISubtitleIdParser>(); stubIdParser .Parse(Arg.Is(new CharacterLine("1"))) .Returns(new SubtitleId(1)); var expectedTimestamps = new SubtitleTimestamps( TimestampTests.CreateTimestamp(0, 0, 1, 100), TimestampTests.CreateTimestamp(0, 0, 3, 200)); var stubTimestampsParser = Substitute.For <ISubtitleTimestampsParser>(); stubTimestampsParser .Parse(Arg.Is(new CharacterLine("00:00:01,100 --> 00:00:03,200"))) .Returns(expectedTimestamps); var parser = CreateParser(stubIdParser, stubTimestampsParser); var expectedSubtitle = new Subtitle( new SubtitleId(1), expectedTimestamps, new SubtitleText( new List <CharacterLine> { new CharacterLine("Some text"), new CharacterLine("More text") })); var actualSubtitle = parser.Parse(subtitleToParse); Assert.AreEqual(expectedSubtitle, actualSubtitle); }