| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448 |
- //
- // MonthCalendarTest.cs: Test case for MonthCalendar
- //
- // Authors:
- // Ritvik Mayank ([email protected])
- //
- // (C) 2005 Novell, Inc. (http://www.novell.com)
- //
- using System;
- using System.Drawing;
- using System.Reflection;
- using System.Windows.Forms;
- using NUnit.Framework;
- namespace MonoTests.System.Windows.Forms
- {
- [TestFixture]
- public class MonthCalendarPropertiesTest : MonthCalendar
- {
- private bool clickRaised;
- private bool doubleClickRaised;
- [SetUp]
- public void SetUp ()
- {
- clickRaised = false;
- doubleClickRaised = false;
- }
- [Test]
- public void ClickEventTest ()
- {
- Click += new EventHandler (OnClickHandler);
- DoubleClick += new EventHandler (OnDoubleClickHandler);
- OnClick (EventArgs.Empty);
- OnDoubleClick (EventArgs.Empty);
-
- Assert.IsTrue (clickRaised, "Click event not raised");
- Assert.IsTrue (doubleClickRaised, "DoubleClick event not raised");
- }
- void OnDoubleClickHandler (object sender, EventArgs e)
- {
- doubleClickRaised = true;
- }
- void OnClickHandler (object sender, EventArgs e)
- {
- clickRaised = true;
- }
-
- #if NET_2_0
- [Test]
- public void DefaultMarginTest ()
- {
- Assert.AreEqual (DefaultMargin.All, 9, "#01");
- }
- #endif
- }
- [TestFixture]
- public class MonthCalendarTest
- {
- [Test]
- public void MonthCalendarPropertyTest ()
- {
- Form myfrm = new Form ();
- myfrm.ShowInTaskbar = false;
- MonthCalendar myMonthCal1 = new MonthCalendar ();
- //MonthCalendar myMonthCal2 = new MonthCalendar ();
- myMonthCal1.Name = "MonthCendar";
- myMonthCal1.TabIndex = 1;
- //DateTime myDateTime = new DateTime ();
-
- // A
- Assert.IsNotNull (myMonthCal1.AnnuallyBoldedDates, "#A-1");
- myMonthCal1.AddAnnuallyBoldedDate (new DateTime (2005, 09, 01));
- Assert.IsNotNull (myMonthCal1.AnnuallyBoldedDates, "#A0");
- Assert.AreEqual (new DateTime (2005, 09, 01), myMonthCal1.AnnuallyBoldedDates.GetValue (0), "#A1");
-
- // B
- Assert.AreEqual ("Window", myMonthCal1.BackColor.Name, "#B1");
- myMonthCal1.AddBoldedDate (new DateTime (2005, 09, 01));
- Assert.AreEqual (new DateTime (2005, 09, 01), myMonthCal1.BoldedDates.GetValue (0), "#B2");
-
- // C
- Assert.AreEqual (1, myMonthCal1.CalendarDimensions.Height, "#C1");
- Assert.AreEqual (1, myMonthCal1.CalendarDimensions.Width, "#C2");
- Assert.AreEqual (false, myMonthCal1.CalendarDimensions.IsEmpty, "#C3");
- // F
- Assert.AreEqual (Day.Default, myMonthCal1.FirstDayOfWeek, "#F1");
- myMonthCal1.FirstDayOfWeek = Day.Sunday;
- Assert.AreEqual (Day.Sunday, myMonthCal1.FirstDayOfWeek, "#F2");
- Assert.AreEqual ("WindowText", myMonthCal1.ForeColor.Name, "#F3");
- // M
- Assert.AreEqual (new DateTime (9998,12,31), myMonthCal1.MaxDate, "#M1");
- Assert.AreEqual (7, myMonthCal1.MaxSelectionCount, "#M2");
- Assert.AreEqual (new DateTime (1753,1,1), myMonthCal1.MinDate, "#M3");
- myMonthCal1.AddMonthlyBoldedDate (new DateTime (2005, 09, 01));
- Assert.AreEqual (new DateTime(2005, 09, 01), myMonthCal1.MonthlyBoldedDates.GetValue (0), "#M4");
-
- // S
- Assert.AreEqual (0, myMonthCal1.ScrollChange, "#S1");
- myMonthCal1.SelectionStart = new DateTime (2005,09,02);
- myMonthCal1.SelectionEnd = new DateTime (2005,09,03);
- Assert.AreEqual (new DateTime (2005,09,03), myMonthCal1.SelectionEnd, "#S2");
- //Assert.AreEqual (new SelectionRange (new DateTime(2005,09,02), new DateTime(2005,09,03)), myMonthCal1.SelectionRange, "#S3");
- Assert.AreEqual (new DateTime (2005,09,02), myMonthCal1.SelectionStart, "#S4");
- Assert.AreEqual (true, myMonthCal1.ShowToday, "#S5");
- Assert.AreEqual (true, myMonthCal1.ShowTodayCircle, "#S6");
- Assert.AreEqual (false, myMonthCal1.ShowWeekNumbers, "#S7");
- // Font dependent. // Assert.AreEqual (153, myMonthCal1.SingleMonthSize.Height, "#S8a");
- // Font dependent. // Assert.AreEqual (176, myMonthCal1.SingleMonthSize.Width, "#S8b");
- Assert.AreEqual (null, myMonthCal1.Site, "#S9");
- // T
- Assert.AreEqual ("ActiveCaption", myMonthCal1.TitleBackColor.Name, "#T1");
- Assert.AreEqual ("ActiveCaptionText", myMonthCal1.TitleForeColor.Name, "#T2");
- Assert.AreEqual (DateTime.Today, myMonthCal1.TodayDate, "#T3");
- Assert.AreEqual (false, myMonthCal1.TodayDateSet, "#T4");
- Assert.AreEqual ("GrayText", myMonthCal1.TrailingForeColor.Name, "#T5");
- myfrm.Dispose ();
- }
-
- [Test]
- public void MonthCalMaxSelectionCountException ()
- {
- MonthCalendar myMonthCal1 = new MonthCalendar ();
- try {
- myMonthCal1.MaxSelectionCount = 0; // value is less than 1
- Assert.Fail ("#A1");
- #if NET_2_0
- } catch (ArgumentOutOfRangeException ex) {
- Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2");
- Assert.IsNotNull (ex.Message, "#A3");
- Assert.IsNotNull (ex.ParamName, "#A4");
- Assert.AreEqual ("MaxSelectionCount", ex.ParamName, "#A5");
- Assert.IsNull (ex.InnerException, "#A6");
- }
- #else
- } catch (ArgumentException ex) {
- Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
- Assert.IsNotNull (ex.Message, "#A3");
- Assert.IsNull (ex.ParamName, "#A4");
- Assert.IsNull (ex.InnerException, "#A5");
- }
- #endif
- }
- [Test]
- public void MonthCalMaxDateException ()
- {
- MonthCalendar myMonthCal1 = new MonthCalendar ();
- try {
- myMonthCal1.MaxDate = new DateTime (1752, 1, 1, 0, 0, 0, 0); // value is less than min date (01/01/1753)
- Assert.Fail ("#A1");
- #if NET_2_0
- } catch (ArgumentOutOfRangeException ex) {
- Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2");
- Assert.IsNotNull (ex.Message, "#A3");
- Assert.IsNotNull (ex.ParamName, "#A4");
- Assert.AreEqual ("MaxDate", ex.ParamName, "#A5");
- Assert.IsNull (ex.InnerException, "#A6");
- }
- #else
- } catch (ArgumentException ex) {
- Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
- Assert.IsNotNull (ex.Message, "#A3");
- Assert.IsNull (ex.ParamName, "#A4");
- Assert.IsNull (ex.InnerException, "#A5");
- }
- #endif
- }
- [Test]
- public void MonthCalMinDateException ()
- {
- MonthCalendar myMonthCal1 = new MonthCalendar ();
- try {
- myMonthCal1.MinDate = new DateTime (1752, 1, 1, 0, 0, 0, 0); // Date earlier than 01/01/1753
- Assert.Fail ("#A1");
- #if NET_2_0
- } catch (ArgumentOutOfRangeException ex) {
- Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2");
- Assert.IsNotNull (ex.Message, "#A3");
- Assert.IsNotNull (ex.ParamName, "#A4");
- Assert.AreEqual ("MinDate", ex.ParamName, "#A5");
- Assert.IsNull (ex.InnerException, "#A6");
- }
- #else
- } catch (ArgumentException ex) {
- Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
- Assert.IsNotNull (ex.Message, "#A3");
- Assert.IsNull (ex.ParamName, "#A4");
- Assert.IsNull (ex.InnerException, "#A5");
- }
- #endif
- try {
- myMonthCal1.MinDate = new DateTime (9999, 12, 31, 0, 0, 0, 0); // Date greater than max date
- Assert.Fail ("#B1");
- #if NET_2_0
- } catch (ArgumentOutOfRangeException ex) {
- Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
- Assert.IsNotNull (ex.Message, "#B3");
- Assert.IsNotNull (ex.ParamName, "#B4");
- Assert.AreEqual ("MinDate", ex.ParamName, "#B5");
- Assert.IsNull (ex.InnerException, "#B6");
- }
- #else
- } catch (ArgumentException ex) {
- Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
- Assert.IsNotNull (ex.Message, "#B3");
- Assert.IsNull (ex.ParamName, "#B4");
- Assert.IsNull (ex.InnerException, "#B5");
- }
- #endif
- }
- [Test]
- [ExpectedException (typeof (ArgumentException))]
- public void MonthCalSelectRangeException ()
- {
- MonthCalendar myMonthCal1 = new MonthCalendar ();
- myMonthCal1.SelectionRange = new SelectionRange (new DateTime (1752, 01, 01), new DateTime (1752, 01, 02));
- }
- [Test]
- [ExpectedException (typeof (ArgumentException))]
- public void MonthCalSelectRangeException2 ()
- {
- MonthCalendar myMonthCal1 = new MonthCalendar ();
- myMonthCal1.SelectionRange = new SelectionRange (new DateTime (9999, 12, 30), new DateTime (9999, 12, 31));
- }
- [Test]
- public void AddAnnuallyBoldedDateTest ()
- {
- Form myForm = new Form ();
- myForm.ShowInTaskbar = false;
- MonthCalendar myMonthCal = new MonthCalendar ();
- myMonthCal.AddAnnuallyBoldedDate (new DateTime (2005, 09, 01));
- myForm.Controls.Add (myMonthCal);
- Assert.AreEqual (new DateTime (2005, 09, 01), myMonthCal.AnnuallyBoldedDates.GetValue (0), "#add1");
- DateTime dt = new DateTime (2006, 02, 03, 04, 05, 06, 07);
- DateTime dt2 = new DateTime (2006, 02, 03);
- myMonthCal.RemoveAllAnnuallyBoldedDates ();
- myMonthCal.AddAnnuallyBoldedDate (dt);
- Assert.AreEqual (dt, myMonthCal.AnnuallyBoldedDates [0], "#add2");
- myMonthCal.AddAnnuallyBoldedDate (dt2);
- Assert.AreEqual (dt2, myMonthCal.AnnuallyBoldedDates [1], "#add3");
- myForm.Dispose ();
- }
-
- [Test]
- public void RemoveAnnuallyBoldedDateTest ()
- {
- MonthCalendar myMonthCal = new MonthCalendar ();
- DateTime[] dts = new DateTime [10];
- dts[0] = new DateTime (2001, 02, 03, 04, 05, 06, 07); // base datetime
- dts[1] = new DateTime (2001, 02, 03); // only date
- dts[2] = new DateTime (2002, 03, 04); // only date, different
- dts[3] = new DateTime (2002, 02, 03, 04, 05, 06, 07); // different year
- dts[4] = new DateTime (2001, 03, 03, 04, 05, 06, 07); // different month
- dts[5] = new DateTime (2001, 02, 04, 04, 05, 06, 07); // etc...
- dts[6] = new DateTime (2001, 02, 03, 05, 05, 06, 07);
- dts[7] = new DateTime (2001, 02, 03, 04, 06, 06, 07);
- dts[8] = new DateTime (2001, 02, 03, 04, 05, 07, 07);
- dts[9] = new DateTime (2001, 02, 03, 04, 05, 06, 08);
- for (int i = 0; i < dts.Length; i++) {
- for (int j = 0; j < dts.Length; j++) {
- myMonthCal.RemoveAllAnnuallyBoldedDates ();
- myMonthCal.AddAnnuallyBoldedDate (dts [j]);
- myMonthCal.RemoveAnnuallyBoldedDate (dts [i]);
- if (dts [j].Month == dts [i].Month && dts [j].Day == dts [i].Day)
- Assert.AreEqual (0, myMonthCal.AnnuallyBoldedDates.Length, "#remove0" + i.ToString () + ", " + j.ToString ());
- else
- Assert.AreEqual (1, myMonthCal.AnnuallyBoldedDates.Length, "#remove0" + i.ToString () + ", " + j.ToString ());
- }
- }
-
- for (int i = 0; i < dts.Length; i++)
- {
- myMonthCal.AnnuallyBoldedDates = dts;
- myMonthCal.RemoveAnnuallyBoldedDate (dts [i]);
- Assert.AreEqual (9, myMonthCal.AnnuallyBoldedDates.Length, "#remove1" + i.ToString ());
- }
- }
- [Test]
- public void RemoveMonthlyBoldedDateTest ()
- {
- MonthCalendar myMonthCal = new MonthCalendar ();
- DateTime[] dts = new DateTime [10];
- dts[0] = new DateTime (2001, 02, 03, 04, 05, 06, 07); // base datetime
- dts[1] = new DateTime (2001, 02, 03); // only date
- dts[2] = new DateTime (2002, 03, 04); // only date, different
- dts[3] = new DateTime (2002, 02, 03, 04, 05, 06, 07); // different year
- dts[4] = new DateTime (2001, 03, 03, 04, 05, 06, 07); // different month
- dts[5] = new DateTime (2001, 02, 04, 04, 05, 06, 07); // etc...
- dts[6] = new DateTime (2001, 02, 03, 05, 05, 06, 07);
- dts[7] = new DateTime (2001, 02, 03, 04, 06, 06, 07);
- dts[8] = new DateTime (2001, 02, 03, 04, 05, 07, 07);
- dts[9] = new DateTime (2001, 02, 03, 04, 05, 06, 08);
- for (int i = 0; i < dts.Length; i++)
- {
- for (int j = 0; j < dts.Length; j++)
- {
- myMonthCal.RemoveAllMonthlyBoldedDates ();
- myMonthCal.AddMonthlyBoldedDate (dts [j]);
- myMonthCal.RemoveMonthlyBoldedDate (dts [i]);
- if (dts [j].Month == dts [i].Month && dts [j].Day == dts [i].Day)
- Assert.AreEqual (0, myMonthCal.MonthlyBoldedDates.Length, "#remove0" + i.ToString () + ", " + j.ToString ());
- else
- Assert.AreEqual (1, myMonthCal.MonthlyBoldedDates.Length, "#remove0" + i.ToString () + ", " + j.ToString ());
- }
- }
-
- for (int i = 0; i < dts.Length; i++)
- {
- myMonthCal.MonthlyBoldedDates = dts;
- myMonthCal.RemoveMonthlyBoldedDate (dts [i]);
- Assert.AreEqual (9, myMonthCal.MonthlyBoldedDates.Length, "#remove1" + i.ToString ());
- }
- }
- [Test]
- public void RemoveBoldedDateTest ()
- {
- MonthCalendar myMonthCal = new MonthCalendar ();
- DateTime[] dts = new DateTime [10];
- dts[0] = new DateTime (2001, 02, 03, 04, 05, 06, 07); // base datetime
- dts[1] = new DateTime (2001, 02, 03); // only date
- dts[2] = new DateTime (2002, 03, 04); // only date, different
- dts[3] = new DateTime (2002, 02, 03, 04, 05, 06, 07); // different year
- dts[4] = new DateTime (2001, 03, 03, 04, 05, 06, 07); // different month
- dts[5] = new DateTime (2001, 02, 04, 04, 05, 06, 07); // etc...
- dts[6] = new DateTime (2001, 02, 03, 05, 05, 06, 07);
- dts[7] = new DateTime (2001, 02, 03, 04, 06, 06, 07);
- dts[8] = new DateTime (2001, 02, 03, 04, 05, 07, 07);
- dts[9] = new DateTime (2001, 02, 03, 04, 05, 06, 08);
- for (int i = 0; i < dts.Length; i++)
- {
- for (int j = 0; j < dts.Length; j++)
- {
- myMonthCal.RemoveAllBoldedDates ();
- myMonthCal.AddBoldedDate (dts [j]);
- myMonthCal.RemoveBoldedDate (dts [i]);
- if (dts [j].Month == dts [i].Month && dts [j].Day == dts [i].Day && dts[j].Year == dts[i].Year)
- Assert.AreEqual (0, myMonthCal.BoldedDates.Length, "#remove0" + i.ToString () + ", " + j.ToString ());
- else
- Assert.AreEqual (1, myMonthCal.BoldedDates.Length, "#remove0" + i.ToString () + ", " + j.ToString ());
- }
- }
-
- for (int i = 0; i < dts.Length; i++)
- {
- myMonthCal.BoldedDates = dts;
- myMonthCal.RemoveBoldedDate (dts [i]);
- Assert.AreEqual (9, myMonthCal.BoldedDates.Length, "#remove1" + i.ToString ());
- }
- }
- [Test]
- public void AddBoldedDateTest ()
- {
- Form myForm = new Form ();
- myForm.ShowInTaskbar = false;
- MonthCalendar myMonthCal = new MonthCalendar ();
- myMonthCal.AddBoldedDate (new DateTime (2005, 09, 02));
- myForm.Controls.Add (myMonthCal);
- Assert.AreEqual (new DateTime (2005, 09, 02), myMonthCal.BoldedDates.GetValue (0), "#add2");
- myForm.Dispose ();
- }
- [Test]
- public void AddMonthlyBoldedDateTest ()
- {
- Form myForm = new Form ();
- myForm.ShowInTaskbar = false;
- MonthCalendar myMonthCal = new MonthCalendar ();
- myMonthCal.AddMonthlyBoldedDate (new DateTime (2005, 09, 03));
- myForm.Controls.Add (myMonthCal);
- Assert.AreEqual (new DateTime (2005, 09, 03), myMonthCal.MonthlyBoldedDates.GetValue (0), "#add2");
- myForm.Dispose ();
- }
-
- [Test]
- public void GetDisplayRangeTest ()
- {
- Form myForm = new Form ();
- myForm.ShowInTaskbar = false;
- MonthCalendar myMonthCal = new MonthCalendar ();
- myForm.Controls.Add (myMonthCal);
- SelectionRange mySelRange = new SelectionRange ();
- mySelRange.Start = new DateTime (DateTime.Now.Year, DateTime.Now.Month, 1);
- mySelRange.End = mySelRange.Start.AddMonths (1).AddDays (-1);
- Assert.AreEqual (mySelRange.Start, myMonthCal.GetDisplayRange (true).Start, "#Get1");
- Assert.AreEqual (mySelRange.End, myMonthCal.GetDisplayRange (true).End, "#Get22");
- myForm.Dispose ();
- }
-
- [Test]
- public void HitTest ()
- {
- Form myForm = new Form ();
- myForm.ShowInTaskbar = false;
- MonthCalendar myMonthCal = new MonthCalendar ();
- myForm.Controls.Add (myMonthCal);
- MonthCalendar.HitTestInfo hitTest = myMonthCal.HitTest (10, 10);
- Assert.AreEqual (MonthCalendar.HitArea.PrevMonthButton, hitTest.HitArea, "#Hit1");
- Assert.AreEqual (new DateTime (01, 01, 01), hitTest.Time, "#Hit2");
- }
- [Test]
- public void DateChangedEventTest ()
- {
- MonthCalendar myCalendar = new MonthCalendar ();
-
- myCalendar.Tag = false;
- myCalendar.DateChanged += new DateRangeEventHandler (DateChangedEventHandler);
- myCalendar.SetDate (DateTime.Today.AddDays (72));
- Assert.AreEqual (true, (bool) myCalendar.Tag, "#01");
- }
- void DateChangedEventHandler (object sender, DateRangeEventArgs e)
- {
- ((Control) sender).Tag = true;
- }
- }
- }
|