public async Task ShouldSendAndReceiveWithNonExistantQueue(BodySerializationType serializationType, string encoding) { var data = Path.GetTempFileName(); var result = await SendMessage(_queueName, data : data, createEntity : true, queueOrTopic : QueueOrTopic.Queue, serializationType : serializationType, encoding : Encoding.GetEncoding(encoding)); var msg = await ReceiveMessage(_queueName, subscriptionName : _subscriptionName, queueOrSubscription : QueueOrSubscription.Queue, serializationType : serializationType); Assert.That(msg.Content, Is.EqualTo(data)); }
public async Task <SendResult> SendMessage(string entityPath, string data = "foobar", BodySerializationType serializationType = BodySerializationType.String, bool createEntity = true, QueueOrTopic queueOrTopic = QueueOrTopic.Queue, Encoding encoding = null, string contentType = null, Dictionary <string, string> properties = null) { encoding = encoding ?? Encoding.UTF8; entitiesToDelete.Add(new EntitySpec { EntityType = queueOrTopic, Name = entityPath }); return(await ServiceBus.Send(new SendInput { QueueOrTopicName = entityPath, ConnectionString = _connectionString, Data = data, Properties = properties?.Select(kvp => new MessageProperty { Name = kvp.Key, Value = kvp.Value }).ToArray() ?? new MessageProperty[] {} }, new SendOptions { CreateQueueOrTopicIfItDoesNotExist = createEntity, BodySerializationType = serializationType, DestinationType = queueOrTopic, TimeoutSeconds = 60, ContentType = contentType ?? $"plain/text;charset={encoding.BodyName}" }).ConfigureAwait(false)); }
private async Task <ReadResult> ReceiveMessage(string entityName, bool useCached = true, QueueOrSubscription queueOrSubscription = QueueOrSubscription.Queue, string subscriptionName = null, bool createEntity = true, BodySerializationType serializationType = BodySerializationType.String, Encoding predefinedEncoding = null) { predefinedEncoding = predefinedEncoding ?? Encoding.UTF8; entitiesToDelete.Add(new EntitySpec { EntityType = queueOrSubscription == QueueOrSubscription.Queue ? QueueOrTopic.Queue : QueueOrTopic.Topic, Name = entityName }); return(await ServiceBus.Read(new ReadInput { QueueOrTopicName = entityName, ConnectionString = _connectionString, SourceType = queueOrSubscription, SubscriptionName = subscriptionName, }, new ReadOptions { BodySerializationType = serializationType, DefaultEncoding = MessageEncoding.Other, EncodingName = predefinedEncoding.BodyName, CreateQueueOrSubscriptionIfItDoesNotExist = createEntity, UseCachedConnection = useCached, TimeoutSeconds = 60, })); }