3c1f479b9d
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
417 lines
15 KiB
C#
417 lines
15 KiB
C#
//
|
|
// MonthCalendarTest.cs: Test case for MonthCalendar
|
|
//
|
|
// Authors:
|
|
// Ritvik Mayank (mritvik@novell.com)
|
|
//
|
|
// (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]
|
|
protected 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;
|
|
}
|
|
|
|
[Test]
|
|
public void DefaultMarginTest ()
|
|
{
|
|
Assert.AreEqual (DefaultMargin.All, 9, "#01");
|
|
}
|
|
}
|
|
|
|
[TestFixture]
|
|
public class MonthCalendarTest : TestHelper
|
|
{
|
|
[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 InitialSizeTest ()
|
|
{
|
|
MonthCalendar cal = new MonthCalendar ();
|
|
Assert.IsTrue (cal.Size != Size.Empty, "#01");
|
|
}
|
|
|
|
[Test]
|
|
public void MonthCalMaxSelectionCountException ()
|
|
{
|
|
MonthCalendar myMonthCal1 = new MonthCalendar ();
|
|
|
|
try {
|
|
myMonthCal1.MaxSelectionCount = 0; // value is less than 1
|
|
Assert.Fail ("#A1");
|
|
} 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");
|
|
}
|
|
}
|
|
|
|
[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");
|
|
} 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");
|
|
}
|
|
}
|
|
|
|
[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");
|
|
} 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");
|
|
}
|
|
|
|
try {
|
|
myMonthCal1.MinDate = new DateTime (9999, 12, 31, 0, 0, 0, 0); // Date greater than max date
|
|
Assert.Fail ("#B1");
|
|
} 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");
|
|
}
|
|
}
|
|
|
|
[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;
|
|
}
|
|
}
|
|
}
|