예제 #1
0
        public void CanEncode_Complex()
        {
            var bdict = new BDictionary
            {
                { "spam", "egg" },
                {
                    "A List", new BList
                    {
                        "foo",
                        "bar",
                        123,
                        new BDictionary
                        {
                            { "more spam", "more eggs" }
                        }
                    }
                },
                {
                    "foobar", new BDictionary
                    {
                        { "numbers", new BList {
                              1, 2, 3
                          } }
                    }
                }
            };

            var bencode = bdict.EncodeAsString();

            bencode.Should()
            .Be("d6:A Listl3:foo3:bari123ed9:more spam9:more eggsee6:foobard7:numbersli1ei2ei3eee4:spam3:egge");
        }
예제 #2
0
        public void CanEncode_Complex()
        {
            var bdict = new BDictionary
            {
                {"spam", "egg"},
                {
                    "A List", new BList
                    {
                        "foo",
                        "bar",
                        123,
                        new BDictionary
                        {
                            {"more spam", "more eggs"}
                        }
                    }
                },
                {
                    "foobar", new BDictionary
                    {
                        {"numbers", new BList {1, 2, 3}}
                    }
                }
            };

            var bencode = bdict.EncodeAsString();

            bencode.Should()
                .Be("d6:A Listl3:foo3:bari123ed9:more spam9:more eggsee6:foobard7:numbersli1ei2ei3eee4:spam3:egge");
        }
예제 #3
0
        public void CanEncode_EmptyDictionary()
        {
            var bdict   = new BDictionary();
            var bencode = bdict.EncodeAsString();

            bencode.Should().Be("de");
        }
예제 #4
0
        public void CanEncode_Simple()
        {
            var bdict = new BDictionary
            {
                { "foobar", "Hello World!" },
                { "number", 747 }
            };

            var bencode = bdict.EncodeAsString();

            bencode.Should().Be("d6:foobar12:Hello World!6:numberi747ee");
        }
예제 #5
0
        public void Encode_KeyAreSortedInLexicalOrder()
        {
            var bdict = new BDictionary
            {
                { "number", 747 },
                { "foobar", "Hello World!" },
                { "key", "value" }
            };

            var bencode = bdict.EncodeAsString();

            bencode.Should().Be("d6:foobar12:Hello World!3:key5:value6:numberi747ee");
        }
예제 #6
0
        public void CalculateInfoHash_SimpleInfoDictionary()
        {
            var info = new BDictionary
            {
                ["key"] = (BString) "value",
                ["list"] = new BList {1, 2, 3},
                ["number"] = (BNumber)42,
                ["dictionary"] = new BDictionary
                {
                    ["key"] = (BString) "value"
                }
            };

            var hash = TorrentUtil.CalculateInfoHash(info);

            info.EncodeAsString().Should().Be("d10:dictionaryd3:key5:valuee3:key5:value4:listli1ei2ei3ee6:numberi42ee");
            hash.Should().Be("8715E7488A8964C6383E09A87287321FE6CBCC07");
        }
예제 #7
0
        public void CalculateInfoHash_SimpleInfoDictionary()
        {
            var info = new BDictionary
            {
                ["key"]  = (BString)"value",
                ["list"] = new BList {
                    1, 2, 3
                },
                ["number"]     = (BNumber)42,
                ["dictionary"] = new BDictionary
                {
                    ["key"] = (BString)"value"
                }
            };

            var hash = TorrentUtil.CalculateInfoHash(info);

            info.EncodeAsString().Should().Be("d10:dictionaryd3:key5:valuee3:key5:value4:listli1ei2ei3ee6:numberi42ee");
            hash.Should().Be("8715E7488A8964C6383E09A87287321FE6CBCC07");
        }
예제 #8
0
 public override string ToString()
 {
     return(fData.EncodeAsString());
 }
예제 #9
0
        public void Encode_KeyAreSortedInLexicalOrder()
        {
            var bdict = new BDictionary
            {
                {"number", 747},
                {"foobar", "Hello World!"},
                {"key", "value"}
            };

            var bencode = bdict.EncodeAsString();

            bencode.Should().Be("d6:foobar12:Hello World!3:key5:value6:numberi747ee");
        }
예제 #10
0
        public void CanEncode_Simple()
        {
            var bdict = new BDictionary
            {
                {"foobar", "Hello World!"},
                {"number", 747}
            };

            var bencode = bdict.EncodeAsString();

            bencode.Should().Be("d6:foobar12:Hello World!6:numberi747ee");
        }
예제 #11
0
 public void CanEncode_EmptyDictionary()
 {
     var bdict = new BDictionary();
     var bencode = bdict.EncodeAsString();
     bencode.Should().Be("de");
 }