public void Next_Added3Items_AppropriateItemsAreReturned() { ICycleProvider <string> iCycleProvider = new CycleProvider <string>(); const string testedItem1 = "Tested Item 1"; const string testedItem2 = "Tested Item 2"; const string testedItem3 = "Tested Item 3"; iCycleProvider.Add(testedItem1); iCycleProvider.Add(testedItem2); iCycleProvider.Add(testedItem3); object actual = iCycleProvider.CurrentItem; Assert.AreEqual(testedItem1, actual); actual = iCycleProvider.Next(); Assert.AreEqual(testedItem2, actual); Assert.AreEqual(testedItem2, iCycleProvider.CurrentItem); actual = iCycleProvider.Next(); Assert.AreEqual(testedItem3, actual); Assert.AreEqual(testedItem3, iCycleProvider.CurrentItem); actual = iCycleProvider.Next(); Assert.AreEqual(testedItem1, actual); Assert.AreEqual(testedItem1, iCycleProvider.CurrentItem); }
public void Next_ThreeItems_ReturnsLastItem() { var cycleProvider = new CycleProvider <string>(); cycleProvider.Add("First Item"); cycleProvider.Add("Second Item"); cycleProvider.Add("Third Item"); cycleProvider.Next(); cycleProvider.Next(); object actual = cycleProvider.Next(); Assert.AreEqual("Third Item", actual); }
public void Next_AfterLastElement_ReturnsFirst() { var cycleProvider = new CycleProvider <string>(); cycleProvider.Add("First Item"); cycleProvider.Add("Second Item"); cycleProvider.Add("Third Item"); cycleProvider.Next(); cycleProvider.Next(); cycleProvider.Next(); object actual = cycleProvider.Next(); Assert.AreEqual("First Item", actual); }
public void Next_FirstUse_ReturnsFirstItem() { var cycleProvider = new CycleProvider <string>(); cycleProvider.Add("First Item"); object actual = cycleProvider.Next(); Assert.AreEqual("First Item", actual); }
static void Main(string[] args) { var t1 = new Task(TaskMethod1); var t2 = new Task(TaskMethod2); var t3 = new Task(TaskMethod3); var tClean = new Task(TaskMethodClear); @lock.Add(ConsoleColor.Blue); @lock.Add(ConsoleColor.Yellow); @lock.Add(ConsoleColor.White); @lock.Add(ConsoleColor.Green); t1.Start(); t2.Start(); t3.Start(); tClean.Start(); Task.WaitAll(t1, t2, t3); }
public void Add_OneItem_CurrentItemIsAddedItem() { ICycleProvider <string> iCycleProvider = new CycleProvider <string>(); const string testedItem = "Tested Item"; iCycleProvider.Add(testedItem); var actual = iCycleProvider.CurrentItem; Assert.AreEqual(testedItem, actual); }
public void Next_LastItem_EventOnLastItemFired() { const string lastItem = "Last Item"; var actualWasInvoked = false; var cycleProvider = new CycleProvider <string>(); cycleProvider.Add("First Item"); cycleProvider.Add(lastItem); cycleProvider.OnLastItem += (s, a) => { actualWasInvoked = true; Assert.AreEqual(cycleProvider, s); Assert.AreEqual(lastItem, a.LastItem); Assert.AreEqual(2, a.TotalItems); }; cycleProvider.Next(); object actual = cycleProvider.Next(); Assert.AreEqual(true, actualWasInvoked, "Event handler was never invoked"); Assert.AreEqual(lastItem, actual); }
static void Main(string[] args) { var @lock = new CycleProvider <ConsoleColor>(); @lock.Add(ConsoleColor.Red); @lock.Add(ConsoleColor.Green); @lock.Add(ConsoleColor.Blue); @lock.Add(ConsoleColor.Yellow); @lock.Add(ConsoleColor.Cyan); @lock.Add(ConsoleColor.White); //@lock.OnLastItem += (s, a) => { lock (@lock) { Console.Clear(); } }; @lock.OnLastItem += (s, a) => Console.Clear(); var t1 = new Task(() => { string log; int i = 0; while (++i < 20) { log = 1000.Sleep(); lock (@lock) { Console.ForegroundColor = @lock.Next(); Console.WriteLine($"▓▓▓ t1 [{i}] => {log} ▓▓▓"); Console.Title = log; } } }); var t2 = new Task(() => { string log; int i = 0; while (++i < 20) { log = 1500.Sleep(); lock (@lock) { Console.ForegroundColor = @lock.Next(); Console.WriteLine($"███ t2 [{i}] => {log} ███"); Console.Title = log; } } }); var t3 = new Task(() => { string log; int i = 0; while (++i < 20) { log = 2000.Sleep(); lock (@lock) { Console.ForegroundColor = @lock.Next(); Console.WriteLine($"▒▒▒ t3 [{i}] => {log} ▒▒▒"); Console.Title = log; } } }); t1.Start(); t2.Start(); t3.Start(); Task.WaitAll(t1, t2, t3); }