public void MultipleQueueManager() { int manifestsProcessed = 0; var manager = new QueueManager(_accessor, new IsolatedStorageQueueStore("test", _accessor)); List<Manifest> manifests = manager.GetManifests().ToList(); foreach (Manifest manifest in manifests) manager.Delete(manifest.Id); const int NUMBER_TO_PROCESS = 20; for (int i = 0; i < NUMBER_TO_PROCESS; i++) manager.Enqueue(CreateSampleError()); var mutex = new Mutex(false, "test"); Parallel.For(0, 5, i => { mutex.WaitOne(); var localManager = new QueueManager(_accessor, new IsolatedStorageQueueStore("test", _accessor)); List<Manifest> localManifests = localManager.GetManifests().ToList(); foreach (Manifest m in localManifests) localManager.Delete(m.Id); Interlocked.Add(ref manifestsProcessed, localManifests.Count); Assert.NotNull(localManifests); mutex.ReleaseMutex(); }); Assert.Equal(NUMBER_TO_PROCESS, manifestsProcessed); foreach (Manifest manifest in manifests) manager.Delete(manifest.Id); }
public void QueueManager() { Error error = CreateSampleError(); var manager = new QueueManager(_accessor, new IsolatedStorageQueueStore("test", _accessor)); manager.Enqueue(error); // verify that the extended data objects were serialized to JSON ValidateSampleError(error); IEnumerable<Manifest> manifests = manager.GetManifests(); Assert.NotNull(manifests); Assert.Equal(1, manifests.Count()); Error e = manager.GetError(manifests.First().Id); ValidateSampleError(e); manager.Delete(error.Id); }