示例#1
0
        public void Test_FileCopyQueueConsumer_ValidMessage_IsAcked()
        {
            BasicDeliverEventArgs mockDeliverArgs = GetMockDeliverArgs(_message);

            var consumer = new FileCopyQueueConsumer(_mockFileCopier.Object);

            consumer.SetModel(_mockModel.Object);

            consumer.ProcessMessage(mockDeliverArgs);

            new TestTimelineAwaiter().Await(() => consumer.AckCount == 1 && consumer.NackCount == 0);
        }
示例#2
0
        public void Test_FileCopyQueueConsumer_ApplicationException_IsNacked()
        {
            BasicDeliverEventArgs mockDeliverArgs = GetMockDeliverArgs(_message);

            _mockFileCopier.Reset();
            _mockFileCopier.Setup(x => x.ProcessMessage(It.IsAny <ExtractFileMessage>(), It.IsAny <IMessageHeader>())).Throws <ApplicationException>();

            var consumer = new FileCopyQueueConsumer(_mockFileCopier.Object);

            consumer.SetModel(_mockModel.Object);

            consumer.ProcessMessage(mockDeliverArgs);

            new TestTimelineAwaiter().Await(() => consumer.AckCount == 0 && consumer.NackCount == 1);
        }
示例#3
0
        public void Test_FileCopyQueueConsumer_UnknownException_CallsFatalCallback()
        {
            BasicDeliverEventArgs mockDeliverArgs = GetMockDeliverArgs(_message);

            _mockFileCopier.Reset();
            _mockFileCopier.Setup(x => x.ProcessMessage(It.IsAny <ExtractFileMessage>(), It.IsAny <IMessageHeader>())).Throws <Exception>();

            var consumer = new FileCopyQueueConsumer(_mockFileCopier.Object);

            consumer.SetModel(_mockModel.Object);

            var fatalCalled = false;

            consumer.OnFatal += (sender, _) => fatalCalled = true;

            consumer.ProcessMessage(mockDeliverArgs);

            new TestTimelineAwaiter().Await(() => fatalCalled, "Expected Fatal to be called");
            Assert.AreEqual(0, consumer.AckCount);
            Assert.AreEqual(0, consumer.NackCount);
        }
示例#4
0
        public FileCopierHost(
            [NotNull] GlobalOptions options,
            [CanBeNull] IFileSystem fileSystem = null
            )
            : base(
                options
                )
        {
            Logger.Debug("Creating FileCopierHost with FileSystemRoot: " + Globals.FileSystemOptions.FileSystemRoot);

            IProducerModel copyStatusProducerModel = RabbitMqAdapter.SetupProducer(Globals.FileCopierOptions.CopyStatusProducerOptions, isBatch: false);

            var fileCopier = new ExtractionFileCopier(
                Globals.FileCopierOptions,
                copyStatusProducerModel,
                Globals.FileSystemOptions.FileSystemRoot,
                Globals.FileSystemOptions.ExtractRoot,
                fileSystem
                );

            _consumer = new FileCopyQueueConsumer(fileCopier);
        }