예제 #1
0
        public void Indexer()
        {
            var  control = new PagedControl();
            Page page1   = new Page();

            control.Pages.Add(page1);
            Page page2 = new Page();

            control.Pages.Add(page2);
            Page page3 = new Page();

            control.Pages.Add(page3);

            // Getter
            Assert.AreEqual(3, control.Pages.Count);
            Assert.AreEqual(page1, control.Pages[0]);
            Assert.AreEqual(page2, control.Pages[1]);
            Assert.AreEqual(page3, control.Pages[2]);
            Assert.IsTrue(control.Pages.Contains(page1));
            Assert.IsTrue(control.Pages.Contains(page2));
            Assert.IsTrue(control.Pages.Contains(page3));

            Page page4 = new Page();

            control.Pages[1] = page4;

            // Setter
            Assert.AreEqual(3, control.Pages.Count);
            Assert.AreEqual(page4, control.Pages[1]);
            Assert.IsTrue(control.Pages.Contains(page1));
            Assert.IsTrue(control.Pages.Contains(page4));
            Assert.IsTrue(control.Pages.Contains(page3));
            Assert.IsFalse(control.Pages.Contains(page2));
        }
예제 #2
0
        public void PageChangingCancelNavigation()
        {
            var control = new PagedControl();

            // Cancel all page change events
            control.PageChanging += (sender, e) => { e.Cancel = true; };

            // While adding a page and if the control is empty the control automatically
            // sets the new page as the current page. This event cannot be cancelled as it would
            // leave the control in an indeterminate state. SelectedPage should always return a valid
            // page if there is at least one page in the control, and it should return null if there are
            // no pages.
            var page1 = new Page();

            Assert.AreEqual(null, control.SelectedPage);
            Assert.AreEqual(-1, control.SelectedIndex);
            control.Pages.Add(page1);
            Assert.AreEqual(page1, control.SelectedPage);
            Assert.AreEqual(0, control.SelectedIndex);

            // Otherwise it is OK to cancel the event
            var page2 = new Page();

            control.Pages.Add(page2);
            control.SelectedPage = page2;
            Assert.AreEqual(page1, control.SelectedPage);
            Assert.AreEqual(0, control.SelectedIndex);
        }
예제 #3
0
        public void Count()
        {
            var control = new PagedControl();

            control.Pages.Add(new Page());
            control.Pages.Add(new Page());
            control.Pages.Add(new Page());
            Assert.AreEqual(3, control.Pages.Count);
        }
예제 #4
0
        public void RemoveAt()
        {
            var control = new PagedControl();

            control.Pages.Add(new Page());
            int count = control.Pages.Count;

            control.Pages.RemoveAt(0);
            Assert.AreEqual(count - 1, control.Pages.Count);
        }
예제 #5
0
        public void Add()
        {
            var control = new PagedControl();
            int count   = control.Pages.Count;
            var page    = new Page();

            control.Pages.Add(page);
            Assert.AreEqual(count + 1, control.Pages.Count);
            Assert.AreEqual(page, control.Pages[control.Pages.Count - 1]);

            Assert.ThrowsException <ArgumentException>(() => control.Controls.Add(new Button()));
        }
예제 #6
0
        public void Remove()
        {
            var control = new PagedControl();

            control.Pages.Add(new Page());
            int count = control.Pages.Count;

            control.Pages.Remove(control.Pages[0]);
            Assert.AreEqual(count - 1, control.Pages.Count);

            Assert.ThrowsException <ArgumentException>(() => control.Controls.Remove(new Button()));
            Assert.ThrowsException <ArgumentException>(() => control.Controls.Remove(new Page()));
        }
예제 #7
0
        public void GetEnumerator()
        {
            var  control = new PagedControl();
            Page page1   = new Page();

            control.Pages.Add(page1);
            Page page2 = new Page();

            control.Pages.Add(page2);
            Page page3 = new Page();

            control.Pages.Add(page3);

            CollectionAssert.AreEqual(new[] { page1, page2, page3 }, control.Pages.Take(3).ToArray());
        }
예제 #8
0
        public void PageAdded()
        {
            var  control   = new PagedControl();
            Page pageAdded = null;

            control.PageAdded += (sender, e) => pageAdded = e.Page;;

            var page1 = new Page();

            control.Pages.Add(page1);
            Assert.AreEqual(page1, pageAdded);

            var page2 = new Page();

            control.Pages.Insert(1, page2);
            Assert.AreEqual(page2, pageAdded);
        }
예제 #9
0
        public void Contains()
        {
            var  control = new PagedControl();
            Page page1   = new Page();

            control.Pages.Add(page1);
            Page page2 = new Page();

            control.Pages.Add(page2);
            Page page3 = new Page();

            control.Pages.Add(page3);

            Assert.IsTrue(control.Pages.Contains(page1));
            Assert.IsTrue(control.Pages.Contains(page2));
            Assert.IsTrue(control.Pages.Contains(page3));
        }
예제 #10
0
        public void Insert()
        {
            var control = new PagedControl();
            int count   = control.Pages.Count;

            var page1 = new Page();

            control.Pages.Insert(0, page1);
            Assert.AreEqual(count + 1, control.Pages.Count);
            Assert.AreEqual(page1, control.Pages[0]);

            var page2 = new Page();

            control.Pages.Insert(1, page2);
            Assert.AreEqual(count + 2, control.Pages.Count);
            Assert.AreEqual(page2, control.Pages[1]);
        }
예제 #11
0
        public void IndexOf()
        {
            var  control = new PagedControl();
            Page page1   = new Page();

            control.Pages.Add(page1);
            Page page2 = new Page();

            control.Pages.Add(page2);
            Page page3 = new Page();

            control.Pages.Add(page3);

            Assert.AreEqual(0, control.Pages.IndexOf(page1));
            Assert.AreEqual(1, control.Pages.IndexOf(page2));
            Assert.AreEqual(2, control.Pages.IndexOf(page3));
        }
예제 #12
0
        public void GoNext()
        {
            var control = new PagedControl();

            Assert.IsFalse(control.CanGoNext);
            var page1 = new Page();

            control.Pages.Add(page1);
            Assert.IsFalse(control.CanGoNext);

            var page2 = new Page();

            control.Pages.Add(page2);
            Assert.IsTrue(control.CanGoNext);

            control.GoNext();
            Assert.AreEqual(page2, control.SelectedPage);
            Assert.IsFalse(control.CanGoNext);
        }
예제 #13
0
        public void PageChanged()
        {
            var  control     = new PagedControl();
            Page oldPage     = null;
            Page currentPage = null;

            control.PageChanged += (sender, e) => { oldPage = e.OldPage; currentPage = e.CurrentPage; };

            var page1 = new Page();

            control.Pages.Add(page1);
            Assert.AreEqual(null, oldPage);
            Assert.AreEqual(page1, currentPage);

            control.Pages.Remove(page1);
            Assert.AreEqual(page1, oldPage);
            Assert.AreEqual(null, currentPage);

            control.Pages.Add(page1);
            control.Pages.Clear();
            Assert.AreEqual(page1, oldPage);
            Assert.AreEqual(null, currentPage);

            control.Pages.Add(page1);
            Assert.AreEqual(null, oldPage);
            Assert.AreEqual(page1, currentPage);

            var page2 = new Page();

            control.Pages.Add(page2);
            control.SelectedPage = page2;
            Assert.AreEqual(page1, oldPage);
            Assert.AreEqual(page2, currentPage);

            var page3 = new Page();

            control.Pages.Add(page3);
            control.SelectedIndex = 2;
            Assert.AreEqual(page2, oldPage);
            Assert.AreEqual(page3, currentPage);
        }