예제 #1
0
 public void MakeSureThatCallingDisposeCallsConfigurationBuilderDispose()
 {
     MockBuilder mockBuilder = new MockBuilder();
     DisposingWrapper wrapper = new DisposingWrapper(mockBuilder);
     wrapper.Dispose();
     Assert.IsTrue(mockBuilder.disposed);
 }
예제 #2
0
 public void MakeSureThatCallingDisposeDoesNotCallConfigurationBuilderDispose()
 {
     MockBuilder mockBuilder = new MockBuilder();
     NonDisposingWrapper wrapper = new NonDisposingWrapper(mockBuilder);
     wrapper.Dispose();
     Assert.IsFalse(mockBuilder.disposed);
 }
예제 #3
0
        public void SetUp()
        {
            mockBuilder = new MockBuilder();
//            mockBuilder = new MockBuilder(x => x.Register<IEasyNetQLogger, ConsoleLogger>());

            var autoSubscriber = new AutoSubscriber(mockBuilder.Bus, "my_app");

            autoSubscriber.Subscribe(typeof(MyAsyncConsumer), typeof(MyConsumer), typeof(MyGenericAbstractConsumer <>));
        }
예제 #4
0
        public void SetUp()
        {
            var conventions = new Conventions(new TypeNameSerializer())
            {
                ConsumerTagConvention = () => consumerTag
            };

            consumerErrorStrategy = MockRepository.GenerateStub <IConsumerErrorStrategy>();
            consumerErrorStrategy.Stub(x => x.HandleConsumerError(null, null))
            .IgnoreArguments()
            .WhenCalled(i =>
            {
                basicDeliverEventArgs = (ConsumerExecutionContext)i.Arguments[0];
                raisedException       = (Exception)i.Arguments[1];
            });
            consumerErrorStrategy.Stub(x => x.PostExceptionAckStrategy()).Return(PostExceptionAckStrategy.ShouldAck);

            mockBuilder = new MockBuilder(x => x
                                          .Register <IConventions>(_ => conventions)
                                          .Register(_ => consumerErrorStrategy)
                                          //.Register<IEasyNetQLogger>(_ => new ConsoleLogger())
                                          );

            mockBuilder.Bus.Subscribe <MyMessage>(subscriptionId, message =>
            {
                throw originalException;
            });


            const string text = "Hello there, I am the text!";

            originalMessage = new MyMessage {
                Text = text
            };

            var body = new JsonSerializer(new TypeNameSerializer()).MessageToBytes(originalMessage);

            // deliver a message
            mockBuilder.Consumers[0].HandleBasicDeliver(
                consumerTag,
                deliveryTag,
                false, // redelivered
                typeName,
                "#",
                new BasicProperties
            {
                Type          = typeName,
                CorrelationId = correlationId
            },
                body);

            // wait for the subscription thread to handle the message ...
            var autoResetEvent = new AutoResetEvent(false);

            mockBuilder.EventBus.Subscribe <AckEvent>(x => autoResetEvent.Set());
            autoResetEvent.WaitOne(1000);
        }
예제 #5
0
        public void SetUp()
        {
            mockBuilder = new MockBuilder();
            advancedBus = mockBuilder.Bus.Advanced;

            var queue = new Topology.Queue("my_queue", false);

            advancedBus.QueueDelete(queue);
        }
예제 #6
0
        public void SetUp()
        {
            mockBuilder = new MockBuilder();
            advancedBus = mockBuilder.Bus.Advanced;

            var exchange = new Exchange("my_exchange");

            advancedBus.ExchangeDelete(exchange);
        }
        AfterEntryFluentBuilderApi_GloballyTransitionsTo_CallsGloballyTransitionsToOnBuilder_ReturnsApiWithBuilder()
        {
            MockBuilder.Setup(b => b.GloballyTransitionsTo("s")).Verifiable();
            var target = new AfterEntryFluentBuilderApi <StubStateModel>(Builder);
            var result = target.GloballyTransitionsTo("s");

            Assert.NotNull(result);
            MockBuilder.VerifyAll();
        }
        public void AfterEntryFluentBuilderApi_State_ValidParmsWithCode_CallsStateOnBuilder_ReturnsApiWithBuilder()
        {
            MockBuilder.Setup(b => b.State("s", 2)).Verifiable();
            var target = new AfterEntryFluentBuilderApi <StubStateModel>(Builder);
            var result = target.State("s", 2);

            Assert.NotNull(result);
            MockBuilder.VerifyAll();
        }
        public void AfterEntryFluentBuilderApi_Initiates_CallsInitiatesOnBuilder_ReturnsApiWithBuilder()
        {
            MockBuilder.Setup(b => b.Initiates()).Verifiable();
            var target = new AfterEntryFluentBuilderApi <StubStateModel>(Builder);
            var result = target.Initiates();

            Assert.NotNull(result);
            MockBuilder.VerifyAll();
        }
예제 #10
0
        public When_the_handler_throws_an_exception()
        {
            var conventions = new Conventions(new TypeNameSerializer())
            {
                ConsumerTagConvention = () => consumerTag
            };

            consumerErrorStrategy = Substitute.For <IConsumerErrorStrategy>();
            consumerErrorStrategy.HandleConsumerError(null, null)
            .ReturnsForAnyArgs(i =>
            {
                basicDeliverEventArgs = (ConsumerExecutionContext)i[0];
                raisedException       = (Exception)i[1];
                return(AckStrategies.Ack);
            });

            mockBuilder = new MockBuilder(x => x
                                          .Register <IConventions>(_ => conventions)
                                          .Register(_ => consumerErrorStrategy)
                                          //.Register<IEasyNetQLogger>(_ => new ConsoleLogger())
                                          );

            mockBuilder.Bus.Subscribe <MyMessage>(subscriptionId, message =>
            {
                throw originalException;
            });


            const string text = "Hello there, I am the text!";

            originalMessage = new MyMessage {
                Text = text
            };

            var body = new JsonSerializer(new TypeNameSerializer()).MessageToBytes(originalMessage);

            // deliver a message
            mockBuilder.Consumers[0].HandleBasicDeliver(
                consumerTag,
                deliveryTag,
                false, // redelivered
                typeName,
                "#",
                new BasicProperties
            {
                Type          = typeName,
                CorrelationId = correlationId
            },
                body);

            // wait for the subscription thread to handle the message ...
            var autoResetEvent = new AutoResetEvent(false);

            mockBuilder.EventBus.Subscribe <AckEvent>(x => autoResetEvent.Set());
            autoResetEvent.WaitOne(1000);
        }
예제 #11
0
        public void Build()
        {
            var mockBuilder = new MockBuilder();

            _profile.RegisterMocks(mockBuilder);

            _registrations = mockBuilder.GetRegistrations();

            Refresh();
        }
        public When_autosubscribing_with_explicit_implementation()
        {
            //mockBuilder = new MockBuilder();
            mockBuilder = new MockBuilder();

            var autoSubscriber = new AutoSubscriber(mockBuilder.Bus, "my_app");

            parameters = new Dictionary <string, object>();
            autoSubscriber.Subscribe(typeof(MyConsumer), typeof(MyGenericAbstractConsumer <>));
        }
예제 #13
0
        public void SetUp()
        {
            mockBuilder = new MockBuilder();
            advancedBus = mockBuilder.Bus.Advanced;

            var exchange = new Exchange("my_exchange");
            var queue    = new Topology.Queue("my_queue", false);

            binding = advancedBus.Bind(exchange, queue, "my_routing_key");
        }
예제 #14
0
        public async void DoesValidatorPreventRequestWithNonExistentRecipe()
        {
            // "D8B765B2-D11B-46E8-8142-E7A9BFBA7286" - sample non existent recipe
            var query     = new GetRecipeById(new Guid("D8B765B2-D11B-46E8-8142-E7A9BFBA7286"));
            var validator = new GetRecipeByIdValidator(MockBuilder.BuildFakeRepository());

            var result = await validator.ValidateAsync(query);

            result.IsValid.Should().BeFalse();
        }
        public When_a_queue_is_bound_to_an_exchange()
        {
            mockBuilder = new MockBuilder();
            advancedBus = mockBuilder.Bus.Advanced;

            var exchange = new Exchange("my_exchange");
            var queue    = new Topology.Queue("my_queue", false);

            binding = advancedBus.Bind(exchange, queue, "my_routing_key");
        }
예제 #16
0
        public When_autosubscribing()
        {
            mockBuilder = new MockBuilder();
//            mockBuilder = new MockBuilder(x => x.Register<IEasyNetQLogger, ConsoleLogger>());

            var autoSubscriber = new AutoSubscriber(mockBuilder.Bus, "my_app");

            parameters = new Dictionary <string, object>();
            autoSubscriber.Subscribe(typeof(MyAsyncConsumer), typeof(MyConsumer), typeof(MyGenericAbstractConsumer <>));
        }
        public void BeforeExitFluentBuilderApi_Compile_ValidParms_CallsCompileOnBuilder_ReturnsStateMachine()
        {
            var machine = FluentStateMachine;

            MockBuilder.Setup(b => b.Compile()).Returns(machine);
            var target = new BeforeExitFluentBuilderApi <StubStateModel>(Builder);
            var result = target.Compile();

            Assert.Same(machine, result);
        }
예제 #18
0
        public void SetUp()
        {
            mockBuilder = new MockBuilder();

            var queue = new Queue("my_queue", false);

            mockBuilder.Bus.Advanced.Consume(queue, (bytes, properties, arg3) => Task.Factory.StartNew(() => { }));

            mockBuilder.Consumers[0].HandleBasicCancel("consumer_tag");
        }
예제 #19
0
        public async void DoesValidatorAllowCorrectRequest()
        {
            // "447EA0EF-F828-486A-91A9-0EDBC01D0B89" - sample existing recipe
            var query     = new GetRecipeById(new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"));
            var validator = new GetRecipeByIdValidator(MockBuilder.BuildFakeRepository());

            var result = await validator.ValidateAsync(query);

            result.IsValid.Should().BeTrue();
        }
예제 #20
0
        public void Keys_Zero()
        {
            // arrange

            // act
            var keys = MockBuilder.Keys(0);

            // assert
            keys.Should().HaveCount(0);
        }
예제 #21
0
        public void SetUp()
        {
            mockBuilder = new MockBuilder();

            var message = new MyMessage {
                Text = "Hiya!"
            };

            mockBuilder.Bus.Publish(message, "X.A");
        }
        BeforeExitFluentBuilderApi_BeforeTransition_ValidParms_CallsBeforeTransitionOnBuilder_ReturnsApiWithBuilder()
        {
            Action <TransitionEventArgs <StubStateModel> > callback = e => { };

            MockBuilder.Setup(b => b.BeforeTransition(callback)).Verifiable();
            var target = new BeforeExitFluentBuilderApi <StubStateModel>(Builder);
            var result = target.BeforeTransition(callback);

            Assert.NotNull(result);
            MockBuilder.VerifyAll();
        }
예제 #23
0
        public When_publish_with_topic_is_called()
        {
            mockBuilder = new MockBuilder();

            var message = new MyMessage {
                Text = "Hiya!"
            };

            mockBuilder.PubSub.Publish(message, c => c.WithTopic("X.A"));
            WaitForMessageToPublish();
        }
예제 #24
0
        public void ListEmpty_Valid()
        {
            // arrange

            // act
            var values = MockBuilder.ListEmpty <string>();

            // assert
            values.Should().BeEmpty();
            values.Should().BeEquivalentTo(new List <string>());
        }
예제 #25
0
        public void List_Parameters_Null()
        {
            // arrange
            var parameters = (string[])null;

            // act
            var values = MockBuilder.List(parameters);

            // assert
            values.Should().BeEmpty();
        }
예제 #26
0
        public void GetId_Key_Null()
        {
            // arrange
            var key = (string)null;

            // act
            var id = MockBuilder.GetId(key);

            // assert
            id.Should().Be(Guid.Empty);
        }
예제 #27
0
        public void StateFluentBuilderApi_AfterExit_ValidParms_CallsAfterExitOnBuilder_ReturnsApiWithBuilder()
        {
            Action <TransitionEventArgs <StubStateModel> > callback = e => { };

            MockBuilder.Setup(b => b.AfterExit(callback)).Verifiable();
            var target = new BeforeEntryFluentBuilderApi <StubStateModel>(Builder);
            var result = target.AfterExit(callback);

            Assert.NotNull(result);
            MockBuilder.VerifyAll();
        }
        public When_a_request_is_sent_but_an_exception_is_thrown_by_responder()
        {
            correlationId = Guid.NewGuid().ToString();
            mockBuilder   = new MockBuilder(
                c => c.Register <ICorrelationIdGenerationStrategy>(
                    _ => new StaticCorrelationIdGenerationStrategy(correlationId)
                    )
                );

            requestMessage = new TestRequestMessage();
        }
        public async void ShouldReturnUserRecipesCorrectly()
        {
            var query   = new GetUserRecipes("9E09950B-47DE-4BAB-AA79-C29414312ECB");
            var handler = new GetUserRecipesHandler(MockBuilder.BuildFakeRepository());

            var result = await handler.Handle(query, CancellationToken.None);

            result.Should().HaveCount(2)
            .And.ContainSingle(x => x.Id == new Guid("447EA0EF-F828-486A-91A9-0EDBC01D0B89"))
            .And.ContainSingle(x => x.Id == new Guid("B8DBCACE-35A9-4D48-8A71-827E37D782A8"));
        }
예제 #30
0
        public void GetId_Key_Invalid()
        {
            // arrange
            var key = "A";

            // act
            var id = MockBuilder.GetId(key);

            // assert
            id.Should().Be(Guid.Empty);
        }
예제 #31
0
        public void GetId_Key_Valid()
        {
            // arrange
            var key = MockBuilder.Key;

            // act
            var id = MockBuilder.GetId(key);

            // assert
            id.Should().Be(Guid.Parse(key));
        }
예제 #32
0
        public void SetUp()
        {
            mockBuilder = new MockBuilder();

            var queue = new Queue("my_queue", false);

            var cancelSubscription = mockBuilder.Bus.Advanced
                                     .Consume(queue, (bytes, properties, arg3) => Task.Factory.StartNew(() => { }));

            cancelSubscription.Dispose();
        }