// ReSharper disable InconsistentNaming static void TestConfiguration(IQueueWriter sender, RawEngineBuilder builder) { int i = 0; using (var t = new CancellationTokenSource()) using (TestObserver.When <MessageAcked>(ea => { if (ea.Context.QueueName != "do") { return; } if (i++ >= 5) { t.Cancel(); } })) using (var engine = builder.Build()) { engine.Start(t.Token); sender.PutMessage(new byte[1]); if (!t.Token.WaitHandle.WaitOne(5000)) { t.Cancel(); } Assert.IsTrue(t.IsCancellationRequested); } }
public void Test() { using (var source = new CancellationTokenSource()) { var dev = AzureStorage.CreateConfigurationForDev(); WipeAzureAccount.Fast(s => s.StartsWith("test-"), dev); var b = new RawEngineBuilder(); b.Dispatch(dev.CreateInbox("test-publish"), bytes => { if (bytes[0] == 42) { source.Cancel(); } }); using (var engine = b.Build()) { var task = engine.Start(source.Token); dev.CreateQueueWriter("test-publish").PutMessage(new byte[] { 42 }); if (!task.Wait(5000)) { source.Cancel(); } } } }
public void Memory_lambda() { var config = new MemoryAccount(); var writer = config.CreateQueueWriter("test"); var inbox = config.CreateInbox("test"); var builder = new RawEngineBuilder(); builder.Dispatch(inbox, bytes => { }); var setup = new Setup { Send = i => writer.PutMessage(new[] { i }), Engine = builder.Build() }; TestConfiguration(setup, 1000000); }
public void File_lambda() { var config = FileStorage.CreateConfig("throughput-tests"); config.Wipe(); var writer = config.CreateQueueWriter("test"); var inbox = config.CreateInbox("test", u => TimeSpan.FromMilliseconds(0)); var builder = new RawEngineBuilder(); builder.Dispatch(inbox, bytes => { }); var setup = new Setup { Send = i => writer.PutMessage(new[] { i }), Engine = builder.Build() }; TestConfiguration(setup, 1000); }
public void Throughput_Azure_lambda() { var config = AzureStorage.CreateConfigurationForDev(); WipeAzureAccount.Fast(s => s.StartsWith("throughput"), config); var writer = config.CreateQueueWriter("test"); var inbox = config.CreateInbox("test", u => TimeSpan.Zero); var builder = new RawEngineBuilder(); builder.Dispatch(inbox, bytes => { }); var setup = new Setup { Send = i => writer.PutMessage(new[] { i }), Engine = builder.Build() }; TestConfiguration(setup, 100); }