Esempio n. 1
0
        public async Task Save()
        {
            var random = new Random();
            var i      = (byte)random.Next(1, byte.MaxValue);
            var index  = random.Next(0, i);

            var msg = new object();
            var qs  = new List <IStorageQueue>();

            for (var j = 0; j < i; j++)
            {
                var q = Substitute.For <IStorageQueue>();
                q.Send(msg).Returns(Task.CompletedTask);
                qs.Add(q);
            }

            var sqs = new StorageQueueShards(qs);

            await sqs.Save(msg, (byte)index);

            for (var j = 0; j < i; j++)
            {
                if (j == index)
                {
                    await qs[j].Received().Send(msg);
                }
                else
                {
                    await qs[j].DidNotReceive().Send(msg);
                }
            }
        }
Esempio n. 2
0
        public void Name()
        {
            var name = Guid.NewGuid().ToString();
            var sqs  = new StorageQueueShards(name, ConnectionString, 2);

            Assert.AreEqual(name, sqs.Name);
        }
Esempio n. 3
0
        public void Queues()
        {
            var random = new Random();
            var i      = (byte)random.Next(1, byte.MaxValue);
            var sqs    = new StorageQueueShards("test", ConnectionString, i);

            Assert.IsNotNull(sqs.Queues);
            Assert.AreEqual(i, sqs.Queues.Count());
        }
        public void IndexBad([Values(0, 255)] int val, [Values(0, 0)] int expected)
        {
            var msg = new object();
            var q   = Substitute.For <IStorageQueue>();

            var qs = new List <IStorageQueue>();

            qs.Add(q);

            var sqs = new StorageQueueShards(qs);

            var index = sqs.Index((byte)val);

            Assert.AreEqual(expected, index);
        }
Esempio n. 5
0
        public void Index()
        {
            var msg = new object();
            var q   = Substitute.For <IStorageQueue>();

            var qs = new List <IStorageQueue>();

            qs.Add(q);
            qs.Add(q);
            qs.Add(q);

            var sqs = new StorageQueueShards(qs);

            var index = sqs.Index(0);

            Assert.IsTrue(0 <= index && 3 > index);
        }
Esempio n. 6
0
        public async Task Delete()
        {
            var random = new Random();
            var i      = random.Next(1, byte.MaxValue);
            var qs     = new List <IStorageQueue>();

            for (var j = 0; j < i; j++)
            {
                var q = Substitute.For <IStorageQueue>();
                q.Delete().Returns(Task.FromResult(true));
                qs.Add(q);
            }
            var sqs = new StorageQueueShards(qs.ToArray());

            await sqs.Delete();

            foreach (var q in qs)
            {
                await q.Received().Delete();
            }
        }
Esempio n. 7
0
        public async Task CreateIfNotExists()
        {
            var random = new Random();
            var i      = random.Next(1, byte.MaxValue);
            var qs     = new List <IStorageQueue>();

            for (var j = 0; j < i; j++)
            {
                var q = Substitute.For <IStorageQueue>();
                q.CreateIfNotExists().Returns(Task.FromResult(true));
                qs.Add(q);
            }
            var sqs = new StorageQueueShards(qs.ToArray());

            var success = await sqs.CreateIfNotExists();

            Assert.IsTrue(success);

            foreach (var q in qs)
            {
                await q.Received().CreateIfNotExists();
            }
        }
Esempio n. 8
0
        public void IndexBad()
        {
            var val      = new int[] { 0, 255 };
            var expected = new int[] { 0, 0 };

            for (int i = 0; i < val.Length; i++)
            {
                for (int ii = 0; ii < expected.Length; ii++)
                {
                    var msg = new object();
                    var q   = Substitute.For <IStorageQueue>();

                    var qs = new List <IStorageQueue>();
                    qs.Add(q);

                    var sqs = new StorageQueueShards(qs);

                    var index = sqs.Index((byte)val[i]);

                    Assert.AreEqual(expected[ii], index);
                }
            }
        }
Esempio n. 9
0
        public void ConstructorShardDefault()
        {
            var sqs = new StorageQueueShards("test", ConnectionString);

            Assert.AreEqual(2, sqs.Queues.Count());
        }