public void Should_extract_body_as_stream_when_configured(string transportEncoding) { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var extensions = new TransportExtensions <AzureServiceBusTransport>(settings); extensions.BrokeredMessageBodyType(SupportedBrokeredMessageBodyTypes.Stream); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var stream = new MemoryStream(); var writer = new StreamWriter(stream); writer.Write("Whatever"); writer.Flush(); stream.Position = 0; var brokeredMessage = new BrokeredMessage(stream); brokeredMessage.Properties[BrokeredMessageHeaders.TransportEncoding] = transportEncoding; var incomingMessage = converter.Convert(brokeredMessage); var body = Encoding.UTF8.GetString(incomingMessage.Body); Assert.AreEqual("Whatever", body); }
public void Should_throw_for_a_message_without_transport_encoding_header_supplied_and_actual_body_type_other_than_default() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var brokeredMessage = new BrokeredMessage("non-default-type"); Assert.Throws <UnsupportedBrokeredMessageBodyTypeException>(() => converter.Convert(brokeredMessage)); }
public void Should_throw_for_a_message_with_unknown_transport_encoding_header_supplied() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var brokeredMessage = new BrokeredMessage("non-default-type"); brokeredMessage.Properties[BrokeredMessageHeaders.TransportEncoding] = "unknown"; Assert.Throws <UnsupportedBrokeredMessageBodyTypeException>(() => converter.Convert(brokeredMessage)); }
public void Should_copy_properties_into_the_headers() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var brokeredMessage = new BrokeredMessage(); brokeredMessage.Properties.Add("my-test-prop", "myvalue"); var incomingMessage = converter.Convert(brokeredMessage); Assert.IsTrue(incomingMessage.Headers.Any(h => h.Key == "my-test-prop" && h.Value == "myvalue")); }
public void Should_extract_body_as_byte_array_by_default() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var bytes = Encoding.UTF8.GetBytes("Whatever"); var brokeredMessage = new BrokeredMessage(bytes); var incomingMessage = converter.Convert(brokeredMessage); var body = Encoding.UTF8.GetString(incomingMessage.Body); Assert.AreEqual(body, "Whatever"); }
public void Should_not_propagate_transport_encoding_header_from_brokered_message() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var bytes = Encoding.UTF8.GetBytes("Whatever"); var brokeredMessage = new BrokeredMessage(bytes); brokeredMessage.Properties[BrokeredMessageHeaders.TransportEncoding] = "wcf/byte-array"; var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var incomingMessageDetails = converter.Convert(brokeredMessage); CollectionAssert.DoesNotContain(incomingMessageDetails.Headers, BrokeredMessageHeaders.TransportEncoding, $"Headers should not contain `{BrokeredMessageHeaders.TransportEncoding}`, but it was found."); }
public void Should_copy_the_message_id() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var brokeredMessage = new BrokeredMessage { MessageId = "someid" }; var incomingMessage = converter.Convert(brokeredMessage); Assert.IsTrue(incomingMessage.MessageId == "someid"); }
public void Should_return_empty_byte_array_for_octectstream_encoded_message() { var message = new BrokeredMessage(null); message.Properties[BrokeredMessageHeaders.TransportEncoding] = "application/octect-stream"; var settings = new SettingsHolder(); settings.Set(WellKnownConfigurationKeys.Topology.Addressing.Namespaces, new NamespaceConfigurations()); settings.Set(WellKnownConfigurationKeys.Serialization.BrokeredMessageBodyType, SupportedBrokeredMessageBodyTypes.Stream); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new DefaultConnectionStringToNamespaceAliasMapper(settings)); var converted = converter.Convert(message); Assert.AreEqual(Array.Empty <byte>(), converted.Body); }
public void Should_complete_replyto_address_if_not_present_in_headers() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MappedMyQueue")); var brokeredMessage = new BrokeredMessage(new byte[] { }) { ReplyTo = "MyQueue" }; var incomingMessage = converter.Convert(brokeredMessage); Assert.IsTrue(incomingMessage.Headers.ContainsKey(Headers.ReplyToAddress)); Assert.AreEqual("MappedMyQueue", incomingMessage.Headers[Headers.ReplyToAddress]); }
public void Should_complete_timetobereceived_if_not_present_in_headers() { // default settings var settings = DefaultConfigurationValues.Apply(SettingsHolderFactory.BuildWithSerializer()); var converter = new BrokeredMessagesToIncomingMessagesConverter(settings, new FakeMapper(settings, "MyQueue", "MyQueue")); var timespan = TimeSpan.FromHours(1); var brokeredMessage = new BrokeredMessage(new byte[] { }) { TimeToLive = timespan }; var incomingMessage = converter.Convert(brokeredMessage); Assert.IsTrue(incomingMessage.Headers.ContainsKey(Headers.TimeToBeReceived)); Assert.AreEqual(timespan.ToString(), incomingMessage.Headers[Headers.TimeToBeReceived]); }