예제 #1
0
        public void CanParseEmptyList(string bencode, IBencodeParser bparser)
        {
            var parser = new BListParser(bparser);
            var blist  = parser.ParseString(bencode);

            blist.Count.Should().Be(0);
            bparser.Received(0).Parse(Arg.Any <BencodeStream>());
        }
예제 #2
0
        public void CanParseSimple(string bencode, IBencodeParser bparser)
        {
            // Arrange
            var bstring = new BString("test");

            SetupBencodeParser(bparser, bencode, bstring, hasEndChar: true);

            // Act
            var parser = new BListParser(bparser);
            var blist  = parser.ParseString(bencode);

            // Assert
            blist.Count.Should().Be(1);
            blist[0].Should().BeOfType <BString>();
            blist[0].Should().BeSameAs(bstring);
            bparser.Received(1).Parse(Arg.Any <BencodeStream>());
        }
예제 #3
0
        public async Task CanParseSimpleAsync(string bencode, IBencodeParser bparser)
        {
            // Arrange
            var bstring = new BString("test");

            bparser.ParseAsync(Arg.Any <PipeBencodeReader>())
            .Returns(bstring)
            .AndSkipsAheadAsync(bencode.Length - 2);

            // Act
            var parser = new BListParser(bparser);
            var blist  = await parser.ParseStringAsync(bencode);

            // Assert
            blist.Count.Should().Be(1);
            blist[0].Should().BeOfType <BString>();
            blist[0].Should().BeSameAs(bstring);
            await bparser.Received(1).ParseAsync(Arg.Any <PipeBencodeReader>());
        }