public void ManagedQueue_WithSingleWorker_Ok() { // Shared results List <WorkItem> results = new List <WorkItem>(); Func <ICollection <WorkItem> > producerAction = () => { List <WorkItem> initialValues = new List <WorkItem> { new WorkItem(10), new WorkItem(20), new WorkItem(30), new WorkItem(40) }; return(initialValues); }; Action <WorkItem> consumerAction = (item) => { results.Add(new WorkItem(item.Value + 2)); }; var queue = new ManagedQueue <WorkItem>(1, producerAction, consumerAction); queue.Start(); // TODO: Remove thread sleep. Add logic to check queue status and wait for it to finish Thread.Sleep(300); queue.Stop(); Assert.IsTrue(results.Count > 0); }
public void ManagedQueue_InstanceInitialized_FirstItemIsDequeued() { IEnumerable <int> queuedList = Enumerable.Range(0, 100); ManagedQueue <int> queue = new ManagedQueue <int>(queuedList); Assert.AreEqual(queuedList.ElementAt(0), queue.Front); }
public void ManagedQueue_Dequeue_FrontDoesNotEqualExceptParameter_CollectionNotDequeued() { IEnumerable <int> queuedList = Enumerable.Range(0, 100); ManagedQueue <int> queue = new ManagedQueue <int>(queuedList); queue.Dequeue(queuedList.ElementAt(2)); Assert.AreEqual(queuedList.ElementAt(0), queue.Front); }
public void LastDequeueTest() { var q = new ManagedQueue <GenericClass>(); Console.WriteLine("---------Queue Created---------"); Thread.Sleep(5000); Console.WriteLine(q.WaitingTime); q.Enqueue(new GenericClass()); Thread.Sleep(5000); q.Enqueue(new GenericClass()); Thread.Sleep(10000); Console.WriteLine(q.WaitingTime); //output should be ~15 seconds q.TryDequeue(out _); Thread.Sleep(5000); Console.WriteLine(q.WaitingTime); //output should be ~5 seconds Thread.Sleep(5000); q.TryDequeue(out _); Thread.Sleep(5000); Console.WriteLine(q.WaitingTime);//output should be ~5 seconds }
public void GrowthRateTest() { var q = new ManagedQueue <GenericClass>(); for (int i = 0; i < 375600; i++) { switch (new Random().Next(1, 3)) { case 1: q.Enqueue(new GenericClass()); break; case 2: q.TryDequeue(out _); break; } Console.WriteLine(q.GrowthRate); //Thread.Sleep(500); } }
public GithubContext(IEnumerable <string> accessTokens) { this.accessTokens = new ManagedQueue <string>(accessTokens); }