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>(); } }
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."); } }
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); } }