Esempio n. 1
0
        public void Redis_Connect_Success()
        {
            ConnectionMultiplexer redis    = ConnectionMultiplexer.Connect("192.168.242.129:6379");
            IDatabase             database = redis.GetDatabase();

            RedisKey   key   = Guid.NewGuid().ToString();
            RedisValue value = "asdf";

            database.StringSet(key, value);

            RedisValue actualValue = database.StringGet(key);

            actualValue.Should().NotBeNull("already saved");
            actualValue.Should().Match(x => x.ToString() == value.ToString());
        }
Esempio n. 2
0
        public void CanSubscribeToChannelAndReceiveMessagePublishedToIt()
        {
            var subscriber = ConnectionMultiplexer.GetSubscriber();

            RedisChannel receivedChannel = default(RedisChannel);
            RedisValue   receivedValue   = default(RedisValue);
            var          receivedEvent   = new ManualResetEvent(false);

            subscriber.Subscribe("channel", (channel, value) =>
            {
                receivedChannel = channel;
                receivedValue   = value;
                receivedEvent.Set();
            });

            Database.Publish("channel", "Hello");

            receivedEvent.WaitOne(TimeSpan.FromSeconds(5)).Should().BeTrue();
            receivedChannel.Should().Be("channel");
            receivedValue.Should().Be("Hello");
        }
Esempio n. 3
0
        public void WhenMultipleSubscribersExistTheyEachReceivePublishedMessage()
        {
            var subscriber1 = ConnectionMultiplexer.GetSubscriber();
            var subscriber2 = ConnectionMultiplexer.GetSubscriber();

            RedisChannel receivedChannel1 = default(RedisChannel);
            RedisChannel receivedChannel2 = default(RedisChannel);
            RedisValue   receivedValue1   = default(RedisValue);
            RedisValue   receivedValue2   = default(RedisValue);
            var          receivedEvent1   = new ManualResetEvent(false);
            var          receivedEvent2   = new ManualResetEvent(false);

            subscriber1.Subscribe("channel", (channel, value) =>
            {
                receivedChannel1 = channel;
                receivedValue1   = value;
                receivedEvent1.Set();
            });

            subscriber2.Subscribe("channel", (channel, value) =>
            {
                receivedChannel2 = channel;
                receivedValue2   = value;
                receivedEvent2.Set();
            });

            Database.Publish("channel", "Hello");

            WaitHandle.WaitAll(new[] { receivedEvent1, receivedEvent2 }, TimeSpan.FromSeconds(5))
            .Should()
            .BeTrue();
            receivedChannel1.Should().Be("channel");
            receivedChannel2.Should().Be("channel");
            receivedValue1.Should().Be("Hello");
            receivedValue2.Should().Be("Hello");
        }