public void Serialize_NullFilePath_Throws() { var serializer = CreateSerializer(); Subtitles stubSubtitles = SubtitlesTests.CreateSubtitles1(); FilePath nullFilePath = null; Assert.Throws <ArgumentNullException>( () => serializer.Serialize(stubSubtitles, nullFilePath)); }
public void Parse_SuccessfulParsing_ReturnsSubtitles() { var expectedSubtitles = SubtitlesTests.CreateSubtitles1(); var stubSubtitlesParser = Substitute.For <ISubtitlesParser>(); stubSubtitlesParser .Parse(Arg.Any <UnvalidatedSubtitles>()) .Returns(expectedSubtitles); var parser = CreateParser(stubSubtitlesParser); var actualSubtitles = parser.Parse(new FilePath("file.srt")); Assert.AreEqual( expectedSubtitles, actualSubtitles); }
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 Serialize_WriterThrows_ThrowsSameExceptionAsWriter() { var stubWriter = Substitute.For <IFileLineWriter>(); var expectedException = new Exception(); stubWriter .When(w => w.WriteLines(Arg.Any <FilePath>(), Arg.Any <IEnumerable <CharacterLine> >())) .Do(w => throw expectedException); var serializer = CreateSerializer(stubWriter); var stubSubtitles = SubtitlesTests.CreateSubtitles1(); var stubPath = new FilePath("/a/path.srt"); var actualException = Assert.Throws <Exception>( () => serializer.Serialize(stubSubtitles, stubPath)); Assert.AreEqual(expectedException, actualException); }