Ejemplo n.º 1
0
        public void EventBusFactory_UpdatePipeline()
        {
            var factory = new EventBusFactory();

            factory.Register("test", () =>
            {
                var pipeline = new EventPipeline();
                pipeline.AddHandler(new ConsoleOutputHandler());

                return(pipeline);
            });

            var first  = factory.GetEventBus("test");
            var second = factory.GetEventBus("test");

            Assert.AreSame(first, second);

            factory.Register("test", () =>
            {
                var pipeline = new EventPipeline();
                pipeline.AddHandler(new ConsoleOutputHandler());

                return(pipeline);
            });

            var third = factory.GetEventBus("test");

            Assert.AreNotSame(first, third);
        }
Ejemplo n.º 2
0
        public void InstanceServer_FactorySetEventBus()
        {
            var pipelineId = Guid.NewGuid().ToString();

            var factory = new EventBusFactory();

            factory.Register(pipelineId, () =>
            {
                var pipeline = new EventPipeline();
                pipeline.AddHandler(new ConsoleOutputHandler());

                return(pipeline);
            });
            factory.Register(pipelineId, new EventBus(() => null, pipelineId));

            var server = new ProcessingServer(factory);

            server.Register(pipelineId, new LogInputHandler());

            var client = new EventDispatcher(server);

            client.Process(pipelineId, new LogMessage {
                Message = "InstanceServer"
            });
        }
Ejemplo n.º 3
0
        public void EventBusFactory_RegisterEventBus_UnequalPipelineId()
        {
            var bus     = new EventBus(() => null, "one");
            var factory = new EventBusFactory();

            Assert.Throws <Exception>(() => factory.Register("two", bus));
        }
Ejemplo n.º 4
0
        public void ProcessingServer_Heartbeat_RegisterEventBus()
        {
            var storage = new Mock <IStorage>();

            GlobalConfiguration.Setup(s => s.Register <IStorage>(storage.Object));

            var factory = new EventBusFactory();

            factory.Register("pipeline", () => new EventPipeline());
            var server = new ProcessingServer(factory);

            server.Register("pipeline", new EventBus(() => null, "pipeline"));

            // give the hearbeat some time to execute
            Task.Delay(500).Wait();

            storage.Verify(exp => exp.Set <ServerModel>(It.IsAny <StorageKey>(), It.IsAny <ServerModel>()), Times.Once);

            // cleanup
            GlobalConfiguration.Setup(s => { });
        }