private byte[] GetEnveloppeDataForCommand(string publisher, string content) { var evt = new RabbitCommand { Data = content }; var ev = new Enveloppe(JsonConvert.SerializeObject(evt), typeof(RabbitCommand), publisher); return(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(ev))); }
public async Task DispatchCommandAsync_Should_AddItToExchange() { var appId = Guid.NewGuid(); var queueName = "test_queue_commands_1"; try { _channel.ExchangeDeclare(appId + "_commands", ExchangeType.Topic, true, false); _channel.QueueDeclare(queueName, true, true, false); _channel.QueueBind(queueName, appId + "_commands", "CQELight"); var evt = new RabbitCommand { Data = "testData" }; var b = new RabbitMQCommandBus( new JsonDispatcherSerializer(), new RabbitMQClientBusConfiguration(appId.ToString(), _testConfiguration["host"], _testConfiguration["user"], _testConfiguration["password"])); var allCalled = false; await b.DispatchAsync(evt).ContinueWith(t => { t.Result.IsSuccess.Should().BeTrue(); var result = _channel.BasicGet(queueName, true); result.Should().NotBeNull(); var enveloppeAsStr = Encoding.UTF8.GetString(result.Body); enveloppeAsStr.Should().NotBeNullOrWhiteSpace(); var receivedEnveloppe = enveloppeAsStr.FromJson <Enveloppe>(); receivedEnveloppe.Should().NotBeNull(); var type = Type.GetType(receivedEnveloppe.AssemblyQualifiedDataType); var evet = receivedEnveloppe.Data.FromJson(type); evet.Should().BeOfType <RabbitCommand>(); evet.As <RabbitCommand>().Data.Should().Be("testData"); allCalled = true; }).ConfigureAwait(false); allCalled.Should().BeTrue(); } finally { _channel.QueueDelete(queueName); _channel.ExchangeDelete(appId + "_commands"); } }