示例#1
0
        public void Test_TOutputSubscriberSerializerException_IsHandled()
        {
            // Arrange
            var queueName = nameof(Test_TOutputSubscriberSerializerException_IsHandled);
            var publisher = this.CreateInt32Publisher(
                string.Empty,
                queueName
            );

            var subscriber = new SimpleSubscriberFactory<int, int>(
                queueName,
                new SimpleProcessor<int, int>(val => val),
                new NotImplementedSerializer<int>(),
                new NotImplementedSerializer<int>()
            ).GetSubscribed(this.UsingConnection.CreateModel());

            var notifier = this.GetProcessedNotifier(subscriber);

            // Act
            publisher.Send(1);
            notifier.WaitOne();

            // Assert
            Assert.IsNotNull((subscriber as SimpleSubscriber<int, int>).LastException);
        }
示例#2
0
        public void Test_TOutputSubscriberTimeout_IsReturnedDefault()
        {
            // Arrange
            var queueName = nameof(Test_TOutputSubscriberTimeout_IsReturnedDefault);
            var publisher = this.CreateInt32Publisher(
                string.Empty,
                queueName
            );

            var expected = new Random().Next(10, 100);
            var subscriber = new SimpleSubscriberFactory<int, int>(
                queueName,
                new SimpleProcessor<int, int>(val =>
                {
                    Thread.Sleep(1500);
                    return val;
                })
                {
                    Timeout = TimeSpan.FromMilliseconds(10),
                    DefaultOutput = expected
                },
                new Int32Serializer(),
                new Int32Serializer()
            ).GetSubscribed(this.UsingConnection.CreateModel());

            // Act
            var actual = publisher.Send(1);

            // Assert
            Assert.AreEqual(expected, actual);
        }
示例#3
0
        public void Test_TInputSerializerSerializerException_IsHandled()
        {
            // Arrange
            var queueName = nameof(Test_TInputSerializerSerializerException_IsHandled);
            var publisher = this.CreateStringPublisher(
                string.Empty,
                queueName
            );

            var processor = new SimpleProcessor<string>();
            var subscriber = new SimpleSubscriberFactory<string>(
                queueName,
                processor,
                new NotImplementedSerializer<string>()
            ).GetSubscribed(this.UsingConnection.CreateModel());

            var notifier = new AutoResetEvent(false);

            // Act
            publisher.Send(string.Empty);
            notifier.WaitOne(100);

            // Assert
            Assert.IsNotNull((subscriber as SimpleSubscriber<string>).LastException);
        }