예제 #1
0
        public async Task Move_CallbackWasCalled()
        {
            var cur = new NullDataCursor(new object[] { new object() });
            await cur.MoveAsync(0);

            Assert.IsTrue(cur.IsOnMoved);
            await cur.MoveAsync(-1);

            Assert.IsTrue(cur.IsOnSkiped);
        }
예제 #2
0
        public async Task Move_MovedEventMustBeFired()
        {
            var cur = new NullDataCursor(new object[] { new object() });
            IDataCursor <object> sender = null;
            int index = -1;

            cur.Moved += (o, e) =>
            {
                sender = o;
                index  = e;
            };
            await cur.MoveAsync(0);

            Assert.AreEqual(cur, sender);
            Assert.AreEqual(0, index);

            sender = null;
            index  = -1;
            await cur.MoveAsync(0);
        }
예제 #3
0
        public async Task Move_WhenSuccedPropertyChanged_FailNothingTodo()
        {
            var rand  = new Random();
            var range = Enumerable.Range(0, 10)
                        .Select(x => (object)rand.Next(0, 999))
                        .ToArray();
            var cur = new NullDataCursor(range);

            Assert.AreEqual(range.Length, cur.Count);
            Assert.AreEqual(-1, cur.CurrentIndex);

            var ok = await cur.MoveAsync(0);

            Assert.IsTrue(ok);
            Assert.AreEqual(0, cur.CurrentIndex);
            Assert.AreEqual(range[0], cur.Current);

            ok = await cur.MoveAsync(1);

            Assert.IsTrue(ok);
            Assert.AreEqual(1, cur.CurrentIndex);
            Assert.AreEqual(range[1], cur.Current);

            ok = await cur.MoveAsync(-1);

            Assert.IsFalse(ok);
            Assert.AreEqual(1, cur.CurrentIndex);
            Assert.AreEqual(range[1], cur.Current);

            ok = await cur.MoveAsync(9999999);

            Assert.IsFalse(ok);
            Assert.AreEqual(1, cur.CurrentIndex);
            Assert.AreEqual(range[1], cur.Current);
            cur.Dispose();
        }