public void Bus_SendAsync_Nominal() { QueueReader.CleanQueueAsync(SERVICENAME).Wait(); var id = Guid.NewGuid(); var message = new TestMessage() { SomeData = id.ToString() }; var serializer = new JSONSerializer(); var publisher = new Mock <IPublishEvents>(); IBus bus = new Bus(serializer, new AzureStorageQueueSendTransport(serializer), publisher.Object); bus.Context = new AFBusMessageContext(); bus.SendAsync(message, SERVICENAME).Wait(); var stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; var finalMessageEnvelope = JsonConvert.DeserializeObject <AFBusMessageEnvelope>(stringMessage, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple }); var finalMessage = JsonConvert.DeserializeObject <TestMessage>(finalMessageEnvelope.Body, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple }); Assert.IsTrue(id.ToString() == finalMessage.SomeData); }
public void SendOnlyBus_SendAsync_Nominal() { var id = Guid.NewGuid(); var message = new TestMessage() { SomeData = id.ToString() }; SendOnlyBus.SendAsync(message, SERVICENAME).Wait(); var stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; var finalMessageEnvelope = JsonConvert.DeserializeObject <AFBusMessageEnvelope>(stringMessage, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple }); var finalMessage = JsonConvert.DeserializeObject <TestMessage>(finalMessageEnvelope.Body, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple }); Assert.IsTrue(id.ToString() == finalMessage.SomeData); }
public void HandlersContainer_HandleAsync_Sends_To_Delay_If_Some_Delay_Is_Left_2() { InvocationCounter.Instance.Reset(); var container = new HandlersContainer(); HandlersContainer.AddDependencyWithInstance <ISendMessages>(new AzureStorageQueueSendTransportShortMaxDelay(HandlersContainer.SolveDependency <ISerializeMessages>())); var message = new TestMessage() { SomeData = "delayed" }; var serializer = HandlersContainer.SolveDependency <ISerializeMessages>(); SendOnlyBus.SendAsync(message, SERVICENAME, TimeSpan.FromSeconds(15), serializer, new AzureStorageQueueSendTransportShortMaxDelay(serializer)).Wait(); string stringMessage = null; do { stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; }while (string.IsNullOrEmpty(stringMessage)); container.HandleAsync(stringMessage, null).Wait(); Assert.IsTrue(InvocationCounter.Instance.Counter == 0, "message not delayed"); do { stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; }while (string.IsNullOrEmpty(stringMessage)); container.HandleAsync(stringMessage, null).Wait(); Assert.IsTrue(InvocationCounter.Instance.Counter == 0, "message not delayed 2"); do { stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; }while (string.IsNullOrEmpty(stringMessage)); container.HandleAsync(stringMessage, null).Wait(); Assert.IsTrue(InvocationCounter.Instance.Counter == 2, "message delayed more than once"); }
public void Bus_SendAsync_DelayedMessage() { QueueReader.CleanQueueAsync(SERVICENAME).Wait(); var message = new TestMessage() { SomeData = "delayed" }; var serializer = new JSONSerializer(); var publisher = new Mock <IPublishEvents>(); IBus bus = new Bus(serializer, new AzureStorageQueueSendTransport(serializer), publisher.Object); bus.Context = new AFBusMessageContext(); var before = DateTime.Now; var timeDelayed = new TimeSpan(0, 0, 5); bus.SendAsync(message, SERVICENAME, timeDelayed).Wait(); string stringMessage = null; do { stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; }while (string.IsNullOrEmpty(stringMessage)); var after = DateTime.Now; var finalMessageEnvelope = JsonConvert.DeserializeObject <AFBusMessageEnvelope>(stringMessage, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple }); var finalMessage = JsonConvert.DeserializeObject <TestMessage>(finalMessageEnvelope.Body, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple }); Assert.IsTrue(after - before > timeDelayed, "Delay failed"); }
public void BigMessage_Bug_Small_After_Big_Mixes_Message_In_File_Flag() { BlobReader.DeleteFilesAsync().Wait(); QueueReader.CleanQueueAsync(SERVICENAME).Wait(); InvocationCounter.Instance.Reset(); var container = new HandlersContainer(SERVICENAME); var message = new BigMessage2(); message.Data = new string('*', 66000); SendOnlyBus.SendAsync(message, SERVICENAME).Wait(); var stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; container.HandleAsync(stringMessage, null).Wait(); Assert.IsTrue(BlobReader.ListFilesAsync().Result.Count() == 0); }
public void BigMessage_Going_To_File_In_Send() { BlobReader.DeleteFilesAsync().Wait(); QueueReader.CleanQueueAsync(SERVICENAME).Wait(); InvocationCounter.Instance.Reset(); var container = new HandlersContainer(SERVICENAME); var message = new BigMessage(); message.Data = new string('*', 66000); SendOnlyBus.SendAsync(message, SERVICENAME).Wait(); var stringMessage = QueueReader.ReadOneMessageFromQueueAsync(SERVICENAME).Result; container.HandleAsync(stringMessage, null).Wait(); Assert.IsTrue(InvocationCounter.Instance.Counter == 1); }