Example #1
0
        public void Should_not_declare_exchange_the_second_time_declare_is_called()
        {
            var       exchangeDeclareCount = 0;
            var       advancedBus          = Substitute.For <IAdvancedBus>();
            IExchange exchange             = new Exchange(exchangeName);

            advancedBus.ExchangeDeclare(exchangeName, "topic").Returns(x =>
            {
                exchangeDeclareCount++;
                return(exchange);
            });

            var exchangeDeclareStrategy = new DefaultExchangeDeclareStrategy(Substitute.For <IConventions>(), advancedBus);

            var _ = exchangeDeclareStrategy.DeclareExchange(exchangeName, ExchangeType.Topic);
            var declaredExchange = exchangeDeclareStrategy.DeclareExchange(exchangeName, ExchangeType.Topic);

            advancedBus.Received().ExchangeDeclare(exchangeName, "topic");
            declaredExchange.Should().BeSameAs(exchange);
            exchangeDeclareCount.Should().Be(1);
        }
Example #2
0
        public void Should_declare_exchange_the_first_time_declare_is_called()
        {
            var       exchangeDeclareCount = 0;
            var       advancedBus          = Substitute.For <IAdvancedBus>();
            IExchange exchange             = new Exchange(exchangeName);

            advancedBus.ExchangeDeclareAsync(exchangeName, Arg.Any <Action <IExchangeDeclareConfiguration> >())
            .Returns(x =>
            {
                exchangeDeclareCount++;
                return(Task.FromResult(exchange));
            });

            var publishExchangeDeclareStrategy = new DefaultExchangeDeclareStrategy(Substitute.For <IConventions>(), advancedBus);

            var declaredExchange = publishExchangeDeclareStrategy.DeclareExchange(exchangeName, ExchangeType.Topic);

            advancedBus.Received().ExchangeDeclareAsync(exchangeName, Arg.Any <Action <IExchangeDeclareConfiguration> >());
            declaredExchange.Should().BeSameAs(exchange);
            exchangeDeclareCount.Should().Be(1);
        }