コード例 #1
0
        public void DictionaryDecode_SimpleSample_Positive()
        {
            // Prep input
            var inputBytes = "d4:spami4e3:ham2:oke".GetASCIIBytes();
            var inputStream = new MemoryStream(inputBytes, false);
            inputStream.Position = 0;

            // Prep expected data
            KeyValuePair<BByteString, BInteger> expectedKV1 = new KeyValuePair<BByteString,BInteger>(new BByteString("spam"), new BInteger(4));
            KeyValuePair<BByteString, BByteString> expectedKV2 = new KeyValuePair<BByteString, BByteString>(new BByteString("ham"), new BByteString("ok"));

            var transform = new DictionaryTransform(new BObjectTransform());
            var outputBDictionary = transform.Decode(inputStream);

            // Assert output data
            var outputDict = outputBDictionary.Value;

            Assert.AreEqual<BObjectType>(BObjectType.Dictionary, outputBDictionary.BType);
            Assert.AreEqual(2, outputDict.Count);

            // Ensure key-value pair 1 is in the output:
            Assert.IsTrue(outputDict.ContainsKey(expectedKV1.Key));
            var outputValue1 = (BInteger) outputDict[expectedKV1.Key];
            Assert.AreEqual<long>(expectedKV1.Value.Value, outputValue1.Value);

            // Ensure key-value pair 2 is in the output:
            Assert.IsTrue(outputDict.ContainsKey(expectedKV2.Key));
            var outputValue2 = (BByteString)outputDict[expectedKV2.Key];
            Assert.IsTrue(expectedKV2.Value.Value.IsEqualWith(outputValue2.Value), "Byte strings are not equal for key-value pair 2");
        }
コード例 #2
0
 public BObjectTransform()
 {
     integerTransform = new IntegerTransform();
     byteStringTransform = new ByteStringTransform();
     listTransform = new ListTransform(this);
     dictionaryTransform = new DictionaryTransform(this);
 }
コード例 #3
0
        public void DictionaryDecode_NoKeyValuePairs_Positive()
        {
            var inputBytes = "de".GetASCIIBytes();
            var inputStream = new MemoryStream(inputBytes, false);
            inputStream.Position = 0;

            var transform = new DictionaryTransform(new BObjectTransform());
            var outputBDictionary = transform.Decode(inputStream);

            Assert.AreEqual<int>(0, outputBDictionary.Value.Count);
        }
コード例 #4
0
        public void DictionaryEncode_NoKeyValuePairs_Positive()
        {
            Dictionary<BByteString, IBObject> inputValue = new Dictionary<BByteString, IBObject>();
            BDictionary inputDict = new BDictionary() { Value = inputValue };

            var expectedBytes = "de".GetASCIIBytes();
            var outputStream = new MemoryStream();

            var transform = new DictionaryTransform(new BObjectTransform());
            transform.Encode(inputDict, outputStream);

            outputStream.Position = 0;
            var actualBytes = outputStream.ToArray();

            Assert.IsTrue(expectedBytes.IsEqualWith(actualBytes), "Bytes returned does not match expected bytes");
        }
コード例 #5
0
 public void DictionaryTransform_Positive()
 {
     var transform = new DictionaryTransform(new BObjectTransform());
     Assert.IsNotNull(transform);
 }
コード例 #6
0
 public void DictionaryTransform_NullBObjectTransform_Exception()
 {
     var transform = new DictionaryTransform(null);
 }
コード例 #7
0
        public void DictionaryEncode_SimpleSample_Positive()
        {
            // Prep input
            Dictionary<BByteString, IBObject> inputValue = new Dictionary<BByteString, IBObject>();
            inputValue.Add(new BByteString("spam"), new BInteger(4));
            inputValue.Add(new BByteString("ham"), new BByteString("ok"));
            BDictionary inputDict = new BDictionary() { Value = inputValue };

            var expectedBytes = "d3:ham2:ok4:spami4ee".GetASCIIBytes();
            var outputStream = new MemoryStream();

            var transform = new DictionaryTransform(new BObjectTransform());
            transform.Encode(inputDict, outputStream);

            outputStream.Position = 0;
            var actualBytes = outputStream.ToArray();

            Assert.IsTrue(expectedBytes.IsEqualWith(actualBytes), "Bytes returned does not match expected bytes");
        }
コード例 #8
0
        public void DictionaryEncode_NullOutputStream_Exception()
        {
            Dictionary<BByteString, IBObject> inputValue = new Dictionary<BByteString, IBObject>();
            BDictionary inputDict = new BDictionary() { Value = inputValue };

            var transform = new DictionaryTransform(new BObjectTransform());
            transform.Encode(inputDict, null);
        }
コード例 #9
0
        public void DictionaryEncode_NullInputDict_Exception()
        {
            var outputStream = new MemoryStream();

            var transform = new DictionaryTransform(new BObjectTransform());
            transform.Encode(null, outputStream);
        }