public async Task Should_delete_staging_queue_when_completing() { var sut = new RabbitMqTimeoutTarget(new TestLoggingAdapter(), rabbitUrl); var endpointName = "FakeEndpoint"; await using var endpointTarget = await sut.PrepareTargetEndpointBatchMigrator(endpointName); await sut.Complete(endpointName); using var connection = factory.CreateConnection(rabbitUrl); using var model = connection.CreateModel(); Assert.Throws <RabbitMQ.Client.Exceptions.OperationInterruptedException>(() => model.QueueDeclarePassive(QueueCreator.StagingQueueName)); }
public async Task Should_handle_negative_delays() { const int BatchNumber = 33; var sut = new RabbitMqTimeoutTarget(new TestLoggingAdapter(), rabbitUrl); var info = new EndpointInfo { EndpointName = ExistingEndpointNameUsingConventional, ShortestTimeout = DateTime.UtcNow.AddDays(3), LongestTimeout = DateTime.UtcNow.AddDays(5), Destinations = new List <string> { ExistingEndpointNameUsingConventional } }; var migrateResult = await sut.AbleToMigrate(info); Assert.IsTrue(migrateResult.CanMigrate); await using var endpointTarget = await sut.PrepareTargetEndpointBatchMigrator(ExistingEndpointNameUsingConventional); await endpointTarget.StageBatch(new List <TimeoutData> { new TimeoutData { Id = "SomeID", Headers = new Dictionary <string, string>(), Destination = ExistingEndpointNameUsingConventional, State = new byte[2], Time = DateTime.Now - TimeSpan.FromDays(1) } }, BatchNumber); var numPumped = await sut.CompleteBatch(BatchNumber); Assert.AreEqual(1, numPumped); using var connection = factory.CreateConnection(); using var channel = connection.CreateModel(); var result = channel.BasicGet(ExistingEndpointNameUsingConventional, true); Assert.NotNull(result); Assert.AreEqual(0, result.MessageCount); }