Exemplo n.º 1
0
        public void Parse_SubtitleParserThrows_ThrowsParsingException(
            int indexOfCorrectSub,
            int indexOfIncorrectSub)
        {
            var subsToParse = new UnvalidatedSubtitles(
                new List <UnvalidatedSubtitle> {
                UnvalidatedSubtitleTests.CreateUnvalidatedSubtitle1(),
                UnvalidatedSubtitleTests.CreateUnvalidatedSubtitle2()
            });

            var stubSubtitleParser = Substitute.For <ISubtitleParser>();

            stubSubtitleParser
            .Parse(Arg.Is(subsToParse.Value.ElementAt(indexOfCorrectSub)))
            .Returns(SubtitleTests.CreateSubtitle1());

            stubSubtitleParser
            .Parse(Arg.Is(subsToParse.Value.ElementAt(indexOfIncorrectSub)))
            .Throws <Exception>();

            var parser = CreateParser(stubSubtitleParser);

            var exception = Assert.Throws <SubtitlesParsingException>(
                () => parser.Parse(subsToParse));

            Assert.AreEqual(
                indexOfIncorrectSub + 1,
                exception.IncorrectSubtitleId);
        }
Exemplo n.º 2
0
        public void Parse_SuccessfulParsing_ReturnsSubtitles()
        {
            var unvalidatedSubtitles = new UnvalidatedSubtitles(
                new List <UnvalidatedSubtitle> {
                UnvalidatedSubtitleTests.CreateUnvalidatedSubtitle1(),
                UnvalidatedSubtitleTests.CreateUnvalidatedSubtitle2()
            });

            var expectedSubtitles = new Subtitles(
                new List <Subtitle> {
                SubtitleTests.CreateSubtitle1(),
                SubtitleTests.CreateSubtitle2()
            });

            var stubParser = Substitute.For <ISubtitleParser>();

            stubParser
            .Parse(Arg.Is(unvalidatedSubtitles.Value.ElementAt(0)))
            .Returns(expectedSubtitles.Value.ElementAt(0));

            stubParser
            .Parse(Arg.Is(unvalidatedSubtitles.Value.ElementAt(1)))
            .Returns(expectedSubtitles.Value.ElementAt(1));

            var parser = CreateParser(stubParser);

            var actualSubtitles = parser.Parse(unvalidatedSubtitles);

            Assert.AreEqual(
                expectedSubtitles,
                actualSubtitles);
        }
        public void Map_Always_ReturnsUnvalidatedSubtitles()
        {
            var subsToMap = new Subtitles(
                new List <Subtitle> {
                SubtitleTests.CreateSubtitle1(),
                SubtitleTests.CreateSubtitle2()
            });

            var stubMapper = Substitute.For <ISubtitleToUnvalidatedMapper>();

            var expectedUnvalidatedSubs = new UnvalidatedSubtitles(
                new List <UnvalidatedSubtitle> {
                UnvalidatedSubtitleTests.CreateUnvalidatedSubtitle1(),
                UnvalidatedSubtitleTests.CreateUnvalidatedSubtitle2()
            });

            stubMapper
            .Map(Arg.Is(subsToMap.Value.ElementAt(0)))
            .Returns(expectedUnvalidatedSubs.Value.ElementAt(0));
            stubMapper
            .Map(Arg.Is(subsToMap.Value.ElementAt(1)))
            .Returns(expectedUnvalidatedSubs.Value.ElementAt(1));

            var mapper = CreateMapper(stubMapper);

            var actualUnvalidatedSubs = mapper.Map(subsToMap);

            Assert.AreEqual(
                expectedUnvalidatedSubs,
                actualUnvalidatedSubs);
        }
Exemplo n.º 4
0
        public void Parse_NullUnvalidatedSubtitles_Throws()
        {
            UnvalidatedSubtitles nullSubtitles = null;
            var parser = CreateParser();

            Assert.Throws <ArgumentNullException>(
                () => parser.Parse(nullSubtitles));
        }
        public void Serialize_WritesSubtitlesToGivenFile()
        {
            var subsToSerialize = new UnvalidatedSubtitles(
                new List <UnvalidatedSubtitle> {
                new UnvalidatedSubtitle(
                    new List <CharacterLine> {
                    new CharacterLine("1"),
                    new CharacterLine("First line"),
                    new CharacterLine("Second line")
                }),
                new UnvalidatedSubtitle(
                    new List <CharacterLine> {
                    new CharacterLine("2"),
                    new CharacterLine("Subtitle 2")
                })
            });

            var stubMapper = Substitute.For <ISubtitlesMapper>();

            stubMapper
            .Map(Arg.Any <Subtitles>())
            .Returns(subsToSerialize);

            var expectedLines = new List <CharacterLine> {
                new CharacterLine("1"),
                new CharacterLine("First line"),
                new CharacterLine("Second line"),
                new CharacterLine(string.Empty),
                new CharacterLine("2"),
                new CharacterLine("Subtitle 2"),
                new CharacterLine(string.Empty)
            };

            var mockWriter = Substitute.For <IFileLineWriter>();
            var serializer = CreateSerializer(mockWriter, stubMapper);

            var stubSubtitles = SubtitlesTests.CreateSubtitles1();
            var stubPath      = new FilePath("/a/path.srt");

            serializer.Serialize(stubSubtitles, stubPath);

            mockWriter.Received()
            .WriteLines(
                Arg.Is(stubPath),
                Arg.Is <List <CharacterLine> >(
                    l => l.SequenceEqual(expectedLines)));
        }
        public void ReadUnvalidatedSubtitles_ReadSuccessful_ReturnsUnvalidatedSubtitles()
        {
            var stubReader = Substitute.For <IFileLineReader>();

            stubReader
            .ReadAllLines(Arg.Any <FilePath>())
            .Returns(new List <CharacterLine> {
                new CharacterLine("1"),
                new CharacterLine("00:01:01,000 --> 00:01:02,000"),
                new CharacterLine("First subtitle"),
                new CharacterLine(""),
                new CharacterLine("2"),
                new CharacterLine("00:01:03,000 --> 00:01:04,000"),
                new CharacterLine("Second subtitle"),
                new CharacterLine("")
            });

            var expectedSubtitles = new UnvalidatedSubtitles(
                new List <UnvalidatedSubtitle>
            {
                CreateUnvalidatedSubtitle(new List <string> {
                    "1", "00:01:01,000 --> 00:01:02,000", "First subtitle"
                }),
                CreateUnvalidatedSubtitle(new List <string> {
                    "2", "00:01:03,000 --> 00:01:04,000", "Second subtitle"
                })
            });

            var reader = CreateReader(stubReader);

            var actualSubtitles = reader.ReadUnvalidatedSubtitles(new FilePath("a file"));

            Assert.AreEqual(
                expectedSubtitles,
                actualSubtitles);
        }