public void WriteMessage_should_write_a_query_failure_message() { using (var stream = new MemoryStream()) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(stream, __messageEncoderSettings, __serializer); subject.WriteMessage(__queryFailureMessage); var bytes = stream.ToArray(); bytes.Should().Equal(__queryFailureMessageBytes); } }
public void WriteMessage_should_encode_flags_correctly(int flags, bool cursorNotFound, bool queryFailure, bool awaitCapable) { var documents = queryFailure ? null : __documents; var queryFailureDocument = queryFailure ? new BsonDocument("ok", 0) : null; var message = new ReplyMessage<BsonDocument>(awaitCapable, __cursorId, cursorNotFound, documents, __numberReturned, queryFailure, queryFailureDocument, __requestId, __responseTo, __serializer, __startingFrom); using (var stream = new MemoryStream()) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(stream, __messageEncoderSettings, __serializer); subject.WriteMessage(message); var bytes = stream.ToArray(); bytes[__flagsOffset].Should().Be((byte)flags); } }
public void WriteMessage_should_throw_if_message_is_null() { using (var stream = new MemoryStream()) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(stream, __messageEncoderSettings, __serializer); Action action = () => subject.WriteMessage(null); action.ShouldThrow<ArgumentNullException>(); } }
public void ReadMessage_should_read_a_query_failure_message() { using (var stream = new MemoryStream(__queryFailureMessageBytes)) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(stream, __messageEncoderSettings, __serializer); var message = subject.ReadMessage(); message.AwaitCapable.Should().Be(false); message.CursorId.Should().Be(__cursorId); message.CursorNotFound.Should().Be(false); message.Documents.Should().BeNull(); message.NumberReturned.Should().Be(0); message.QueryFailure.Should().Be(true); message.QueryFailureDocument.Should().Be(__queryFailureDocument); message.Serializer.Should().BeSameAs(__serializer); message.StartingFrom.Should().Be(0); message.RequestId.Should().Be(__requestId); message.ResponseTo.Should().Be(__responseTo); } }
public void ReadMessage_should_decode_flags_correctly(int flags, bool cursorNotFound, bool queryFailure, bool awaitCapable) { var bytes = (byte[])__testMessageBytes.Clone(); bytes[__flagsOffset] = (byte)flags; using (var stream = new MemoryStream(bytes)) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(stream, __messageEncoderSettings, __serializer); var message = subject.ReadMessage(); message.CursorNotFound.Should().Be(cursorNotFound); message.QueryFailure.Should().Be(queryFailure); message.AwaitCapable.Should().Be(awaitCapable); } }
public void WriteMessage_should_write_a_message() { using (var stream = new MemoryStream()) using (var binaryWriter = new BsonBinaryWriter(stream)) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(null, binaryWriter, __serializer); subject.WriteMessage(__testMessage); var bytes = stream.ToArray(); bytes.Should().Equal(__testMessageBytes); } }
public void WriteMessage_should_throw_if_binaryWriter_was_not_provided() { using (var stream = new MemoryStream()) using (var binaryReader = new BsonBinaryReader(stream)) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(binaryReader, null, __serializer); Action action = () => subject.WriteMessage(__testMessage); action.ShouldThrow<InvalidOperationException>(); } }
public void ReadMessage_should_read_a_message() { using (var stream = new MemoryStream(__testMessageBytes)) using (var binaryReader = new BsonBinaryReader(stream)) { var subject = new ReplyMessageBinaryEncoder<BsonDocument>(binaryReader, null, __serializer); var message = subject.ReadMessage(); message.AwaitCapable.Should().Be(__awaitCapable); message.CursorId.Should().Be(__cursorId); message.CursorNotFound.Should().Be(__cursorNotFound); message.Documents.Should().Equal(__documents); message.NumberReturned.Should().Be(__numberReturned); message.QueryFailure.Should().Be(false); message.QueryFailureDocument.Should().Be(null); message.Serializer.Should().BeSameAs(__serializer); message.StartingFrom.Should().Be(__startingFrom); message.RequestId.Should().Be(__requestId); message.ResponseTo.Should().Be(__responseTo); } }