Example #1
0
 public void ReadMessage_should_throw_if_binaryReader_was_not_provided()
 {
     using (var stream = new MemoryStream())
         using (var binaryWriter = new BsonBinaryWriter(stream))
         {
             var    subject = new InsertMessageBinaryEncoder <BsonDocument>(null, binaryWriter, __serializer);
             Action action  = () => subject.ReadMessage();
             action.ShouldThrow <InvalidOperationException>();
         }
 }
Example #2
0
        public void ReadMessage_should_decode_flags_correctly(int flags, bool continueOnError)
        {
            var bytes = (byte[])__testMessageBytes.Clone();

            bytes[__flagsOffset] = (byte)flags;

            using (var stream = new MemoryStream(bytes))
            {
                var subject = new InsertMessageBinaryEncoder <BsonDocument>(stream, __messageEncoderSettings, __serializer);
                var message = subject.ReadMessage();
                message.ContinueOnError.Should().Be(continueOnError);
            }
        }
        public void ReadMessage_should_throw_when_opcode_is_invalid()
        {
            var bytes = (byte[])__testMessageBytes.Clone();

            bytes[12]++;

            using (var stream = new MemoryStream(bytes))
            {
                var subject   = new InsertMessageBinaryEncoder <BsonDocument>(stream, __messageEncoderSettings, __serializer);
                var exception = Record.Exception(() => subject.ReadMessage());
                exception.Should().BeOfType <FormatException>();
                exception.Message.Should().Be("Insert message opcode is not OP_INSERT.");
            }
        }
Example #4
0
 public void ReadMessage_should_read_a_message()
 {
     using (var stream = new MemoryStream(__testMessageBytes))
     {
         var subject = new InsertMessageBinaryEncoder <BsonDocument>(stream, __messageEncoderSettings, __serializer);
         var message = subject.ReadMessage();
         message.CollectionNamespace.Should().Be(__collectionNamespace);
         message.ContinueOnError.Should().Be(__continueOnError);
         message.DocumentSource.Batch.Should().Equal(__documentSource.Batch);
         message.MaxBatchCount.Should().Be(0);
         message.MaxMessageSize.Should().Be(0);
         message.RequestId.Should().Be(__requestId);
         message.Serializer.Should().BeSameAs(__serializer);
     }
 }