示例#1
0
        public void Test_Writing_A_String_To_A_Null_BinaryWriter()
        {
            IDataNode dataNode = new StringDataNode();

            Action action = () => dataNode.Write(null, string.Empty);

            action.Should()
            .ThrowArgumentNullException("binaryWriter");
        }
示例#2
0
        public void Test_Writing_A_Null_String()
        {
            IDataNode dataNode = new StringDataNode();

            Action action = () => dataNode.Write(binaryWriter, null);

            action.Should()
            .ThrowArgumentNullException("value");
        }
示例#3
0
        public void Test_Writing_A_Non_String_Object()
        {
            IDataNode dataNode = new StringDataNode();
            int       value    = 1;

            Action action = () => dataNode.Write(binaryWriter, value);

            action.Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage($"Cannot write value of type {value.GetType().Name} as a string.");
        }
示例#4
0
        public void Test_Writing_An_Offline_String_With_Invalid_Length()
        {
            IDataNode dataNode = new StringDataNode();
            string    value    = new string('a', StringDataNode.OFFSET_STRING_MAX_LENGTH + 1);

            Action action = () => dataNode.Write(binaryWriter, value);

            action.Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage($"String length is longer than {StringDataNode.OFFSET_STRING_MAX_LENGTH}.");
        }
示例#5
0
        public void Test_Writing_An_Inline_String_Longer_Than_The_Fixed_Size()
        {
            byte      length   = 20;
            IDataNode dataNode = new StringDataNode(length);
            string    value    = new string('a', length + 1);

            Action action = () => dataNode.Write(binaryWriter, value);

            action.Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage($"String length is longer than {length}.");
        }
示例#6
0
        public void Test_Writing_An_Inline_String_Of_Exactly_The_Fixed_Size()
        {
            byte      length   = 20;
            IDataNode dataNode = new StringDataNode(length);
            string    value    = new string('b', length);

            dataNode.Write(binaryWriter, value);

            Received.InOrder(() =>
            {
                binaryWriter.WriteBytes(Matcher.ForEquivalentArray(Encoding.ASCII.GetBytes(value)));
            });
        }
示例#7
0
        public void Test_Writing_An_Offline_String()
        {
            IDataNode dataNode = new StringDataNode();
            string    value    = "my value";

            dataNode.Write(binaryWriter, value);

            Received.InOrder(() =>
            {
                binaryWriter.WriteByte((byte)value.Length);
                binaryWriter.WriteBytes(Matcher.ForEquivalentArray(Encoding.ASCII.GetBytes(value)));
                binaryWriter.WriteByte(0);
            });
        }