public void RemoveTestRemoveExistingActiveThreads() { ThreadCollection tc = new ThreadCollection(); GThreadMock threadToRemove1 = new GThreadMock(); GThreadMock threadToRemove2 = new GThreadMock(); GThreadMock threadToRemove3 = new GThreadMock(); GThreadMock threadToRemove4 = new GThreadMock(); tc.Add(threadToRemove1); tc.Add(threadToRemove2); tc.Add(threadToRemove3); tc.Add(threadToRemove4); Assert.AreEqual(4, tc.Count); threadToRemove1.SetState(ThreadState.Ready); threadToRemove2.SetState(ThreadState.Scheduled); threadToRemove3.SetState(ThreadState.Started); threadToRemove4.SetState(ThreadState.Unknown); tc.Remove(threadToRemove1); tc.Remove(threadToRemove2); tc.Remove(threadToRemove3); tc.Remove(threadToRemove4); // the thread should not have been removed // this remove function only allows the removal of Dead or Finished threads Assert.AreEqual(4, tc.Count); }
public void SetStateTestSimpleScenario() { GApplicationMock application = new GApplicationMock(); GThreadMock thread = new GThreadMock(); // NOTE: In fact, this exercises the State implementation found in GThreadMock thread.SetState(ThreadState.Scheduled); Assert.AreEqual(ThreadState.Scheduled, thread.State); }
public void RemoveTestRemoveExistingDeadOrFinishedThread() { ThreadCollection tc = new ThreadCollection(); GThreadMock threadToRemove1 = new GThreadMock(); GThreadMock threadToRemove2 = new GThreadMock(); tc.Add(threadToRemove1); tc.Add(threadToRemove2); Assert.AreEqual(2, tc.Count); threadToRemove1.SetState(ThreadState.Dead); threadToRemove2.SetState(ThreadState.Finished); tc.Remove(threadToRemove1); // the thread should have been removed Assert.AreEqual(1, tc.Count); tc.Remove(threadToRemove2); // the thread should have been removed Assert.AreEqual(0, tc.Count); }