Exemplo n.º 1
0
        public void SetUp()
        {
            var subscriptions = new MessageBusSubscriptions();

            _memoryCache           = new FakeCacheImpl();
            _sharedCache           = new FakeCacheImpl();
            _sharedCacheMessageBus = new MessageBusImpl(new MemoryMessageBusManager(subscriptions), new MemoryMessageBusPublisher(subscriptions));

            _cache = new TwoLayerCacheImpl(_memoryCache, _sharedCache, _sharedCacheMessageBus);
        }
        public void GeneralPubSubTest()
        {
            // GIVEN

            var subscriptions = new MessageBusSubscriptions();
            var messageBus    = new MessageBusImpl(new MemoryMessageBusManager(subscriptions), new MemoryMessageBusPublisher(subscriptions));

            // subscriber1 for Key1

            var subscriberCount1 = 0;
            var subscriberKey1   = string.Empty;
            var subscriberValue1 = string.Empty;
            var subscriberEvent1 = new AutoResetEvent(false);

            Action <string, string> subscriber1 = (k, v) =>
            {
                Interlocked.Increment(ref subscriberCount1);
                subscriberKey1   = k;
                subscriberValue1 = v;
                subscriberEvent1.Set();
            };

            messageBus.Subscribe("Key1", subscriber1);

            // subscriber2 for Key1

            var subscriberCount2 = 0;
            var subscriberKey2   = string.Empty;
            var subscriberValue2 = string.Empty;
            var subscriberEvent2 = new AutoResetEvent(false);

            Action <string, string> subscriber2 = (k, v) =>
            {
                Interlocked.Increment(ref subscriberCount2);
                subscriberKey2   = k;
                subscriberValue2 = v;
                subscriberEvent2.Set();
            };

            messageBus.Subscribe("Key1", subscriber2);

            // subscriber3 for Key2

            var subscriberCount3 = 0;
            var subscriberKey3   = string.Empty;
            var subscriberValue3 = string.Empty;
            var subscriberEvent3 = new AutoResetEvent(false);

            Action <string, string> subscriber3 = (k, v) =>
            {
                Interlocked.Increment(ref subscriberCount3);
                subscriberKey3   = k;
                subscriberValue3 = v;
                subscriberEvent3.Set();
            };

            messageBus.Subscribe("Key2", subscriber3);

            // subscriber4 for Key3

            var subscriberCount4 = 0;
            var subscriberKey4   = string.Empty;
            var subscriberValue4 = string.Empty;
            var subscriberEvent4 = new AutoResetEvent(false);

            Action <string, string> subscriber4 = (k, v) =>
            {
                Interlocked.Increment(ref subscriberCount4);
                subscriberKey4   = k;
                subscriberValue4 = v;
                subscriberEvent4.Set();
            };

            messageBus.Subscribe("Key3", subscriber4);

            // WHEN

            messageBus.Publish("Key1", "Value1");
            messageBus.Publish("Key2", "Value2");

            var subscriberComplete1 = subscriberEvent1.WaitOne(5000);
            var subscriberComplete2 = subscriberEvent2.WaitOne(5000);
            var subscriberComplete3 = subscriberEvent3.WaitOne(5000);
            var subscriberComplete4 = subscriberEvent4.WaitOne(5000);

            // THEN

            Assert.IsTrue(subscriberComplete1);
            Assert.AreEqual(1, subscriberCount1);
            Assert.AreEqual("Key1", subscriberKey1);
            Assert.AreEqual("Value1", subscriberValue1);

            Assert.IsTrue(subscriberComplete2);
            Assert.AreEqual(1, subscriberCount2);
            Assert.AreEqual("Key1", subscriberKey2);
            Assert.AreEqual("Value1", subscriberValue2);

            Assert.IsTrue(subscriberComplete3);
            Assert.AreEqual(1, subscriberCount3);
            Assert.AreEqual("Key2", subscriberKey3);
            Assert.AreEqual("Value2", subscriberValue3);

            Assert.IsFalse(subscriberComplete4);
            Assert.AreEqual(0, subscriberCount4);
            Assert.AreEqual(string.Empty, subscriberKey4);
            Assert.AreEqual(string.Empty, subscriberValue4);
        }
Exemplo n.º 3
0
 public RedisMessageBusObserver()
 {
     _subscriptions = new MessageBusSubscriptions();
 }
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="subscriptions">Список подписчиков шины сообщений.</param>
 public MemoryMessageBusPublisher(MessageBusSubscriptions subscriptions)
 {
     _subscriptions = subscriptions;
 }
        public void SetUp()
        {
            var subscriptions = new MessageBusSubscriptions();

            _messageBus = new MessageBusImpl(new MemoryMessageBusManager(subscriptions), new MemoryMessageBusPublisher(subscriptions));
        }
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="subscriptions">Список подписчиков шины сообщений.</param>
 public MemoryMessageBusManager(MessageBusSubscriptions subscriptions)
 {
     _subscriptions = subscriptions;
 }