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");
        }
Ejemplo n.º 2
0
        public AFBusService(IHubContext <Events> hubcontext)
        {
            this.hubcontext = hubcontext;

            HandlersContainer.AddDependencyWithInstance <IHubContext <Events> >(hubcontext);
        }