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); } } }
public void Name() { var name = Guid.NewGuid().ToString(); var sqs = new StorageQueueShards(name, ConnectionString, 2); Assert.AreEqual(name, sqs.Name); }
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); }
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); }
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(); } }
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(); } }
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); } } }
public void ConstructorShardDefault() { var sqs = new StorageQueueShards("test", ConnectionString); Assert.AreEqual(2, sqs.Queues.Count()); }