public static void printBEnc(string benc) { BencodeParser parser = new BencodeParser(); BDictionary bdic = parser.ParseString <BDictionary>(benc.Trim()); printDicRec(bdic, 0); }
public void InvalidFirstChars_ThrowsInvalidBencodeException(string bencode) { var bparser = new BencodeParser(); Action action = () => bparser.ParseString(bencode); action.ShouldThrow <InvalidBencodeException <IBObject> >(); }
public void EmptyString_ReturnsNull() { var bparser = new BencodeParser(); var result = bparser.ParseString(""); result.Should().BeNull(); }
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>()); }
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>()); }
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>()); }
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>()); }
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"); }
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"); }
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); }
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); }
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>()); }
public void InvalidFirstChars_ThrowsInvalidBencodeException(string bencode) { var bparser = new BencodeParser(); Action action = () => bparser.ParseString(bencode); action.ShouldThrow<InvalidBencodeException<IBObject>>(); }
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>()); }