Пример #1
0
        public static void printBEnc(string benc)
        {
            BencodeParser parser = new BencodeParser();
            BDictionary   bdic   = parser.ParseString <BDictionary>(benc.Trim());

            printDicRec(bdic, 0);
        }
Пример #2
0
        public void InvalidFirstChars_ThrowsInvalidBencodeException(string bencode)
        {
            var    bparser = new BencodeParser();
            Action action  = () => bparser.ParseString(bencode);

            action.ShouldThrow <InvalidBencodeException <IBObject> >();
        }
Пример #3
0
        public void EmptyString_ReturnsNull()
        {
            var bparser = new BencodeParser();
            var result  = bparser.ParseString("");

            result.Should().BeNull();
        }
Пример #4
0
        public void FirstCharDigit_CallsStringParser(string bencode, IBObjectParser<BString> stringParser)
        {
            var bparser = new BencodeParser();
            bparser.Parsers.AddOrReplace(stringParser);
            bparser.ParseString(bencode);

            stringParser.Received(1).Parse(Arg.Any<BencodeStream>());
        }
Пример #5
0
        public void FirstChar_D_CallsNumberParser(string bencode, IBObjectParser <BDictionary> dictionaryParser)
        {
            var bparser = new BencodeParser();

            bparser.Parsers.AddOrReplace(dictionaryParser);
            bparser.ParseString(bencode);

            dictionaryParser.Received(1).Parse(Arg.Any <BencodeStream>());
        }
Пример #6
0
        public void FirstChar_L_CallsNumberParser(string bencode, IBObjectParser <BList> listParser)
        {
            var bparser = new BencodeParser();

            bparser.Parsers.AddOrReplace(listParser);
            bparser.ParseString(bencode);

            listParser.Received(1).Parse(Arg.Any <BencodeStream>());
        }
Пример #7
0
        public void FirstCharDigit_CallsStringParser(string bencode, IBObjectParser <BString> stringParser)
        {
            var bparser = new BencodeParser();

            bparser.Parsers.AddOrReplace(stringParser);
            bparser.ParseString(bencode);

            stringParser.Received(1).Parse(Arg.Any <BencodeStream>());
        }
Пример #8
0
        public void CanParseGeneric_ListOfStrings()
        {
            var bencode = "l4:spam3:egge";

            var bparser = new BencodeParser();
            var blist   = bparser.ParseString <BList>(bencode);

            blist.Should().HaveCount(2);
            blist[0].Should().BeOfType <BString>();
            blist[0].Should().Be((BString)"spam");
            blist[1].Should().BeOfType <BString>();
            blist[1].Should().Be((BString)"egg");
        }
Пример #9
0
        public void CanParse_ListOfStrings()
        {
            var bencode = "l4:spam3:egge";

            var bparser = new BencodeParser();
            var blist = bparser.ParseString(bencode) as BList;

            blist.Should().HaveCount(2);
            blist[0].Should().BeOfType<BString>();
            blist[0].Should().Be((BString)"spam");
            blist[1].Should().BeOfType<BString>();
            blist[1].Should().Be((BString)"egg");
        }
Пример #10
0
        public void CanParse_SimpleDictionary()
        {
            var bencode = "d4:spam3:egg3:fooi42ee";

            var bparser     = new BencodeParser();
            var bdictionary = bparser.ParseString <BDictionary>(bencode);

            bdictionary.Should().HaveCount(2);
            bdictionary.Should().ContainKey("spam");
            bdictionary.Should().ContainKey("foo");
            bdictionary["spam"].Should().BeOfType(typeof(BString));
            bdictionary["spam"].Should().Be((BString)"egg");
            bdictionary["foo"].Should().BeOfType(typeof(BNumber));
            bdictionary["foo"].Should().Be((BNumber)42);
        }
Пример #11
0
        public void CanParse_SimpleDictionary()
        {
            var bencode = "d4:spam3:egg3:fooi42ee";

            var bparser = new BencodeParser();
            var bdictionary = bparser.ParseString<BDictionary>(bencode);

            bdictionary.Should().HaveCount(2);
            bdictionary.Should().ContainKey("spam");
            bdictionary.Should().ContainKey("foo");
            bdictionary["spam"].Should().BeOfType(typeof (BString));
            bdictionary["spam"].Should().Be((BString) "egg");
            bdictionary["foo"].Should().BeOfType(typeof (BNumber));
            bdictionary["foo"].Should().Be((BNumber) 42);
        }
Пример #12
0
        public void FirstChar_D_CallsNumberParser(string bencode, IBObjectParser<BDictionary> dictionaryParser)
        {
            var bparser = new BencodeParser();
            bparser.Parsers.AddOrReplace(dictionaryParser);
            bparser.ParseString(bencode);

            dictionaryParser.Received(1).Parse(Arg.Any<BencodeStream>());
        }
Пример #13
0
        public void InvalidFirstChars_ThrowsInvalidBencodeException(string bencode)
        {
            var bparser = new BencodeParser();
            Action action = () => bparser.ParseString(bencode);

            action.ShouldThrow<InvalidBencodeException<IBObject>>();
        }
Пример #14
0
        public void FirstChar_L_CallsNumberParser(string bencode, IBObjectParser<BList> listParser)
        {
            var bparser = new BencodeParser();
            bparser.Parsers.AddOrReplace(listParser);
            bparser.ParseString(bencode);

            listParser.Received(1).Parse(Arg.Any<BencodeStream>());
        }