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);
        }
Exemple #2
0
        public void Parse_NullUnvalidatedSubtitle_Throws()
        {
            UnvalidatedSubtitle nullSubtitle = null;
            var parser = CreateParser();

            Assert.Throws <ArgumentNullException>(
                () => parser.Parse(nullSubtitle));
        }
Exemple #3
0
        public void Parse_LessThanThreeLinesSubtitle_ThrowsParsingException(List <CharacterLine> lines)
        {
            var subtitle = new UnvalidatedSubtitle(lines);

            var parser = CreateParser();

            Assert.Throws <ParsingException>(
                () => parser.Parse(subtitle));
        }
Exemple #4
0
        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);
        }