예제 #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);
        }
        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);
        }
예제 #3
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);
        }
예제 #4
0
 private void AssertThrowsParsingException(SubtitleParser parser)
 {
     Assert.Throws <ParsingException>(
         () => parser.Parse(
             UnvalidatedSubtitleTests.CreateUnvalidatedSubtitle1()));
 }