Ejemplo n.º 1
0
        public void Deserialize_MediaWithInvalidDuration_ThrowsException()
        {
            var deserializer = new M3uDeserializer();

            Action act = () => deserializer.Deserialize("#EXTM3U\n#EXTINF:42.foo\nfoo.bar\n");

            act.Should().Throw <MediaFormatException>();
        }
Ejemplo n.º 2
0
        public void Deserialize_MediaWithValidDuration_DurationIsCorrectlyExtracted()
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize("#EXTM3U\n#EXTINF:42.42\nfoo.bar\n");

            output.Items.First().Duration.Should().Be(42.42m);
        }
Ejemplo n.º 3
0
        public void Deserialize_DifferentTypesOfNewLines_ParseAsExpected(string newLine)
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize($"#EXTM3U{newLine}#EXTINF:42.42{newLine}foo.bar{newLine}");

            output.Items.Should().NotBeEmpty();
        }
Ejemplo n.º 4
0
        public void Deserialize_MediaWithNoPath_ThrowsException()
        {
            var deserializer = new M3uDeserializer();

            Action act = () => deserializer.Deserialize("#EXTM3U\n#Foo:42\n");

            act.Should().Throw <FormatException>();
        }
Ejemplo n.º 5
0
        public void Deserialize_GivenEmptyPlaylist_ReturnsEmptyPlaylist()
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize("#EXTM3U");

            output.Items.Should().BeEmpty();
        }
Ejemplo n.º 6
0
        public void Deserialize_TrashMediaTag_ThrowsException()
        {
            var deserializer = new M3uDeserializer();

            Action act = () => deserializer.Deserialize("#EXTM3U\n#Foo:42\nfoo.bar\n");

            act.Should().Throw <MediaFormatException>();
        }
Ejemplo n.º 7
0
        public void Deserialize_MeidaTitleContainsComma_TitleExtracteWithComma()
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize("#EXTM3U\n#EXTINF:42, Foo, Bar\nfoo.bar\n");

            output.Items.First().Title.Should().Be("Foo, Bar");
        }
Ejemplo n.º 8
0
        public void Deserialize_InvalidHeader_ThrowsException()
        {
            var deserializer = new M3uDeserializer();

            Action act = () => deserializer.Deserialize("#M3uFoo\n");

            act.Should().Throw <FormatException>();
        }
Ejemplo n.º 9
0
        public void Deserialize_MediaAndUnnecessaryNewlines_ExtraNewlinesAreIgnored()
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize("#EXTM3U\n\n\n\n\n\n\n#EXTINF:42\nfoo.bar\n");

            output.Items.Should().NotBeEmpty();
        }
Ejemplo n.º 10
0
        public void Deserialize_MediaWithTwoItems_TwoItemsAreExtracted()
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize("#EXTM3U\n#EXTINF:42\nfoo.bar\n#EXTINF:42\nfoo.bar\n");

            output.Items.Should().HaveCount(2);
        }
Ejemplo n.º 11
0
        public void Deserialize_MediaWithPath_PathIsCorrectlyExtracted()
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize("#EXTM3U\n#EXTINF:42\nfoo.bar\n");

            output.Items.First().Path.Should().Be("foo.bar");
        }
Ejemplo n.º 12
0
        public void Deserialize_NullInput_ThrowsException()
        {
            var deserializer = new M3uDeserializer();

            Action act = () => deserializer.Deserialize(null);

            act.Should().Throw <ArgumentNullException>();
        }
Ejemplo n.º 13
0
        public void Deserialize_MediaWithTitle_TitleIsCorrectlyExtracted()
        {
            var deserializer = new M3uDeserializer();

            var output = deserializer.Deserialize("#EXTM3U\n#EXTINF:42, Foo\nfoo.bar\n");

            output.Items.First().Title.Should().Be("Foo");
        }
Ejemplo n.º 14
0
 public M3uDeserializerTests()
 {
     deserializer = new M3uDeserializer();
 }