public static async Task HandleData(Visit visit, AckHandler ackHandler, NackHandler nackHandler) { if (VERBOSE) { Console.WriteLine($" [-] Vist {visit.Id} RECEIVED at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}."); } var pushingResult = await _campaignPusher.PushCampaignAsync(visit); if (pushingResult.Notifications.Any()) { if (VERBOSE) { foreach (var notification in pushingResult.Notifications) { Console.WriteLine($" [-] {notification.Message} at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}."); } } if (pushingResult.IsInvalid) { nackHandler(requeue: false); return; } } if (VERBOSE) { Console.WriteLine($" [x] Visit {visit.Id} DONE pushing campaign at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}."); } ackHandler(); }
public void cant_nack_without_message_id() { var frame = new BasicFrame("NACK"); var client = Substitute.For <IStompClient>(); var repos = Substitute.For <IQueueRepository>(); var sut = new NackHandler(repos); Action actual = () => sut.Process(client, frame); actual.ShouldThrow <BadRequestException>(); }
public void cant_nack_if_message_Was_not_found() { var frame = new BasicFrame("NACK"); var repos = Substitute.For <IQueueRepository>(); var client = Substitute.For <IStompClient>(); frame.Headers["id"] = "aa"; client.IsFramePending("aa").Returns(false); var sut = new NackHandler(repos); Action actual = () => sut.Process(client, frame); actual.ShouldThrow <BadRequestException>(); }
public void nack() { var frame = new BasicFrame("NACK"); var repos = Substitute.For <IQueueRepository>(); var client = Substitute.For <IStompClient>(); var subscription = Substitute.For <Subscription>(client, "aa"); var queue = Substitute.For <IStompQueue>(); subscription.Nack("aa").Returns(new IFrame[] { frame }); subscription.QueueName = "Q"; repos.Get("Q").Returns(queue); frame.Headers["id"] = "aa"; client.IsFramePending("aa").Returns(true); client.GetSubscription("aa").Returns(subscription); var sut = new NackHandler(repos); sut.Process(client, frame); subscription.Received().Nack("aa"); queue.Received().Enqueue(frame); }
public void enqueue_if_transaction_was_specified() { var frame = new BasicFrame("NACK"); var repos = Substitute.For <IQueueRepository>(); var client = Substitute.For <IStompClient>(); var subscription = Substitute.For <Subscription>(client, "aa"); var queue = Substitute.For <IStompQueue>(); subscription.QueueName = "Q"; repos.Get("Q").Returns(queue); frame.Headers["id"] = "aa"; frame.Headers["transaction"] = "sdfsd"; client.IsFramePending("aa").Returns(true); client.GetSubscription("aa").Returns(subscription); var sut = new NackHandler(repos); sut.Process(client, frame); client.Received().EnqueueInTransaction("sdfsd", Arg.Any <Action>(), Arg.Any <Action>()); subscription.DidNotReceive().Nack("aa"); queue.DidNotReceiveWithAnyArgs().Enqueue(null); }
public static async Task HandleData(Campaign campaign, AckHandler ackHandler, NackHandler nackHandler) { if (VERBOSE) { Console.WriteLine($" [-] Campaign {campaign.Id} RECEIVED at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}."); } var indexingResult = await _campaignIndexer.IndexCampaignAsync(campaign); if (indexingResult.Notifications.Any()) { if (VERBOSE) { foreach (var notification in indexingResult.Notifications) { Console.WriteLine($" [-] {notification.Message} at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}."); } } if (indexingResult.IsInvalid) { nackHandler(requeue: false); return; } } if (VERBOSE) { Console.WriteLine($" [x] Campaign {campaign.Id} DONE indexing at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}."); } ackHandler(); }