Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }