File tree Expand file tree Collapse file tree 2 files changed +23
-2
lines changed
sdk/servicebus/Azure.Messaging.ServiceBus Expand file tree Collapse file tree 2 files changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -63,12 +63,25 @@ public ServiceBusMessage(BinaryData body) : this(body?.ToMemory() ?? default)
6363 public ServiceBusMessage ( ServiceBusReceivedMessage receivedMessage )
6464 {
6565 Argument . AssertNotNull ( receivedMessage , nameof ( receivedMessage ) ) ;
66- if ( ! receivedMessage . AmqpMessage . Body . TryGetData ( out IEnumerable < ReadOnlyMemory < byte > > dataBody ) )
66+
67+ AmqpMessageBody body = null ;
68+ if ( receivedMessage . AmqpMessage . Body . TryGetData ( out IEnumerable < ReadOnlyMemory < byte > > dataBody ) )
69+ {
70+ body = AmqpMessageBody . FromData ( MessageBody . FromReadOnlyMemorySegments ( dataBody ) ) ;
71+ }
72+ else if ( receivedMessage . AmqpMessage . Body . TryGetValue ( out object valueBody ) )
73+ {
74+ body = AmqpMessageBody . FromValue ( valueBody ) ;
75+ }
76+ else if ( receivedMessage . AmqpMessage . Body . TryGetSequence ( out IEnumerable < IList < object > > sequenceBody ) )
77+ {
78+ body = AmqpMessageBody . FromSequence ( sequenceBody ) ;
79+ }
80+ else
6781 {
6882 throw new NotSupportedException ( $ "{ receivedMessage . AmqpMessage . Body . BodyType } is not a supported message body type.") ;
6983 }
7084
71- AmqpMessageBody body = new AmqpMessageBody ( MessageBody . FromReadOnlyMemorySegments ( dataBody ) ) ;
7285 AmqpMessage = new AmqpAnnotatedMessage ( body ) ;
7386
7487 // copy properties
Original file line number Diff line number Diff line change @@ -387,6 +387,10 @@ public async Task CanSendValueSection(object value)
387387 Assert . That (
388388 ( ) => received . Body ,
389389 Throws . InstanceOf < NotSupportedException > ( ) ) ;
390+
391+ var sendable = new ServiceBusMessage ( received ) ;
392+ sendable . GetRawAmqpMessage ( ) . Body . TryGetValue ( out var sendData ) ;
393+ Assert . AreEqual ( value , sendData ) ;
390394 }
391395 }
392396
@@ -433,6 +437,10 @@ public async Task CanSendSequenceSection(IEnumerable<IList<object>> sequence)
433437 Assert . That (
434438 ( ) => received . Body ,
435439 Throws . InstanceOf < NotSupportedException > ( ) ) ;
440+
441+ var sendable = new ServiceBusMessage ( received ) ;
442+ sendable . GetRawAmqpMessage ( ) . Body . TryGetSequence ( out var sendData ) ;
443+ Assert . AreEqual ( sequence , sendData ) ;
436444 }
437445 }
438446
You can’t perform that action at this time.
0 commit comments