Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/SchedulerDemo.Wpf/DemoTesting/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/SchedulerDemo.Wpf/DemoTesting/Fixtures.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports DevExpress.Xpf.DemoBase.DemoTesting
Imports DevExpress.Xpf.Scheduler
Imports DevExpress.XtraScheduler
Imports System.Windows
Imports DevExpress.XtraScheduler.Drawing
Imports DevExpress.Xpf.Core.Native

Namespace SchedulerDemo.Tests
	#Region "SchedulerCheckAllDemosFixture"
	Public Class SchedulerCheckAllDemosFixture
		Inherits CheckAllDemosFixture
		Protected Overrides Function CanRunModule(ByVal moduleType As Type) As Boolean
			Dim skipModuleTypes() As Type = { GetType(OutlookImport), GetType(OutlookSynchronization) }
			Return Not skipModuleTypes.Contains(moduleType)
		End Function
		Protected Overrides Function CheckMemoryLeaks(ByVal moduleTyle As Type) As Boolean
			Return True
		End Function
	End Class
	#End Region

	#Region "SchedulerDemoModuleAccessor"
	Public Class SchedulerDemoModuleAccessor
		Inherits DemoModulesAccessor(Of SchedulerDemoModule)
		Public Sub New(ByVal fixture As BaseDemoTestingFixture)
			MyBase.New(fixture)
		End Sub
		Public ReadOnly Property SchedulerControl() As SchedulerControl
			Get
				Return DemoModule.SchedulerControl
			End Get
		End Property
		Public ReadOnly Property DayViewModule() As SchedulerDemo.DayView
			Get
				Return CType(DemoModule, SchedulerDemo.DayView)
			End Get
		End Property
		Public ReadOnly Property WorkWeekViewModule() As SchedulerDemo.WorkWeekView
			Get
				Return CType(DemoModule, SchedulerDemo.WorkWeekView)
			End Get
		End Property
		Public ReadOnly Property WeekViewModule() As SchedulerDemo.WeekView
			Get
				Return CType(DemoModule, SchedulerDemo.WeekView)
			End Get
		End Property
		Public ReadOnly Property MonthViewModule() As SchedulerDemo.MonthView
			Get
				Return CType(DemoModule, SchedulerDemo.MonthView)
			End Get
		End Property
		Public ReadOnly Property TimeLineViewModule() As SchedulerDemo.TimeLineView
			Get
				Return CType(DemoModule, SchedulerDemo.TimeLineView)
			End Get
		End Property
		Public ReadOnly Property AppointmentStylesModule() As SchedulerDemo.AppointmentStyles
			Get
				Return CType(DemoModule, SchedulerDemo.AppointmentStyles)
			End Get
		End Property
	End Class
	#End Region
	#Region "BaseSchedulerTestingFixture"
	Public MustInherit Class BaseSchedulerTestingFixture
		Inherits BaseDemoTestingFixture
		Private ReadOnly modulesAccessor As SchedulerDemoModuleAccessor
		Public Sub New()
			Me.modulesAccessor = New SchedulerDemoModuleAccessor(Me)
		End Sub
		Public ReadOnly Property SchedulerControl() As SchedulerControl
			Get
				Return Me.modulesAccessor.SchedulerControl
			End Get
		End Property
		Public ReadOnly Property DayViewModule() As SchedulerDemo.DayView
			Get
				Return modulesAccessor.DayViewModule
			End Get
		End Property
		Public ReadOnly Property WorkWeekViewModule() As SchedulerDemo.WorkWeekView
			Get
				Return modulesAccessor.WorkWeekViewModule
			End Get
		End Property
		Public ReadOnly Property WeekViewModule() As SchedulerDemo.WeekView
			Get
				Return modulesAccessor.WeekViewModule
			End Get
		End Property
		Public ReadOnly Property MonthViewModule() As SchedulerDemo.MonthView
			Get
				Return modulesAccessor.MonthViewModule
			End Get
		End Property
		Public ReadOnly Property TimeLineViewModule() As SchedulerDemo.TimeLineView
			Get
				Return modulesAccessor.TimeLineViewModule
			End Get
		End Property
		Public ReadOnly Property AppointmentStylesModule() As SchedulerDemo.AppointmentStyles
			Get
				Return modulesAccessor.AppointmentStylesModule
			End Get
		End Property
	End Class
	#End Region
	#Region "CheckDayViewModuleFixture"
	Public Class CheckDayViewModuleFixture
		Inherits BaseSchedulerTestingFixture
		Protected Overrides Sub CreateActions()
			MyBase.CreateActions()
			AddSimpleAction(AddressOf CreateCheckDemosActions)
		End Sub
		Private Sub CreateCheckDemosActions()
			AddLoadModuleActions(GetType(DayView))
			AddSimpleAction(AddressOf CheckDemo)
		End Sub
		Private Sub CheckDemo()
			Dim dayViewModule As DayView = CType(DemoBaseTesting.CurrentDemoModule, DayView)
			Dim initialDayCount As Integer = 3
			Assert.AreEqual(SchedulerViewType.Day, dayViewModule.scheduler.ActiveViewType)
			Assert.AreEqual(initialDayCount, dayViewModule.scheduler.DayView.DayCount)

			For i As Integer = initialDayCount + 1 To 10
				dayViewModule.spnDayCount.SpinUp()
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(False, dayViewModule.spnDayCount.HasValidationError)
				Assert.AreEqual(i, dayViewModule.scheduler.DayView.DayCount)
			Next i

			Assert.AreEqual(False, dayViewModule.scheduler.DayView.AllDayAreaScrollBarVisible)
			Assert.AreEqual(False, dayViewModule.chkShowAllDayAreaScrollBars.IsChecked)
			dayViewModule.chkShowAllDayAreaScrollBars.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, dayViewModule.scheduler.DayView.AllDayAreaScrollBarVisible)

			dayViewModule.chkShowAllDayAreaScrollBars.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, dayViewModule.scheduler.DayView.AllDayAreaScrollBarVisible)

			Assert.AreEqual(False, dayViewModule.scheduler.DayView.ShowWorkTimeOnly)
			Assert.AreEqual(False, dayViewModule.chkShowWorkTimeOnly.IsChecked)
			dayViewModule.chkShowWorkTimeOnly.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, dayViewModule.scheduler.DayView.ShowWorkTimeOnly)

			dayViewModule.chkShowWorkTimeOnly.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, dayViewModule.scheduler.DayView.ShowWorkTimeOnly)

			Assert.AreEqual(True, dayViewModule.scheduler.DayView.ShowDayHeaders)
			Assert.AreEqual(True, dayViewModule.chkShowDayHeaders.IsChecked)
			dayViewModule.chkShowDayHeaders.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, dayViewModule.scheduler.DayView.ShowDayHeaders)

			dayViewModule.chkShowDayHeaders.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, dayViewModule.scheduler.DayView.ShowDayHeaders)

			Assert.AreEqual(True, dayViewModule.scheduler.DayView.ShowAllDayArea, "dayViewModule.scheduler.DayView.ShowAllDayArea must be true")
			Assert.AreEqual(True, dayViewModule.chkShowAllDayArea.IsChecked, "dayViewModule.chkShowAllDayArea.IsChecked must be true")
			dayViewModule.chkShowAllDayArea.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, dayViewModule.scheduler.DayView.ShowAllDayArea, "dayViewModule.scheduler.WorkWeekView.ShowAllDayArea must be false")

			dayViewModule.chkShowAllDayArea.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, dayViewModule.scheduler.DayView.ShowAllDayArea, "dayViewModule.scheduler.WorkWeekView.ShowAllDayArea must be true")
		End Sub
	End Class
	#End Region
	#Region "CheckWorkWeekViewModuleFixture"
	Public Class CheckWorkWeekViewModuleFixture
		Inherits BaseSchedulerTestingFixture
		Protected Overrides Sub CreateActions()
			MyBase.CreateActions()
			AddSimpleAction(AddressOf CreateCheckDemoActions)
		End Sub
		Private Sub CreateCheckDemoActions()
			AddLoadModuleActions(GetType(WorkWeekView))
			AddSimpleAction(AddressOf CheckDemo)
		End Sub
		Private Sub CheckDemo()
			Dim workWeekViewModule As WorkWeekView = CType(DemoBaseTesting.CurrentDemoModule, WorkWeekView)
			Dim weekDays As WeekDays = WeekDays.Monday Or WeekDays.Tuesday Or WeekDays.Wednesday Or WeekDays.Thursday Or WeekDays.Friday
			Assert.AreEqual(SchedulerViewType.WorkWeek, workWeekViewModule.scheduler.ActiveViewType)
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			workWeekViewModule.chkMonday.IsChecked = False
			weekDays = weekDays And Not WeekDays.Monday
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			workWeekViewModule.chkTuesday.IsChecked = False
			weekDays = weekDays And Not WeekDays.Tuesday
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			workWeekViewModule.chkWednesday.IsChecked = False
			weekDays = weekDays And Not WeekDays.Wednesday
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			workWeekViewModule.chkThursday.IsChecked = False
			weekDays = weekDays And Not WeekDays.Thursday
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			workWeekViewModule.chkFriday.IsChecked = False
			weekDays = weekDays And Not WeekDays.Friday
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			workWeekViewModule.chkSaturday.IsChecked = True
			weekDays = weekDays Or WeekDays.Saturday
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			workWeekViewModule.chkSunday.IsChecked = True
			weekDays = weekDays Or WeekDays.Sunday
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(weekDays, workWeekViewModule.scheduler.WorkDays.GetWeekDays())

			Assert.AreEqual(False, workWeekViewModule.scheduler.WorkWeekView.AllDayAreaScrollBarVisible)
			Assert.AreEqual(False, workWeekViewModule.chkShowAllDayAreaScrollBars.IsChecked)
			workWeekViewModule.chkShowAllDayAreaScrollBars.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, workWeekViewModule.scheduler.WorkWeekView.AllDayAreaScrollBarVisible)

			workWeekViewModule.chkShowAllDayAreaScrollBars.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, workWeekViewModule.scheduler.WorkWeekView.AllDayAreaScrollBarVisible)

			Assert.AreEqual(True, workWeekViewModule.scheduler.WorkWeekView.ShowAllDayArea, "workWeekViewModule.scheduler.WorkWeekView.ShowAllDayArea must be true")
			Assert.AreEqual(True, workWeekViewModule.chkShowAllDayArea.IsChecked, "workWeekView.chkShowAllDayArea.IsChecked must be true")
			workWeekViewModule.chkShowAllDayArea.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, workWeekViewModule.scheduler.WorkWeekView.ShowAllDayArea, "workWeekViewModule.scheduler.WorkWeekView.ShowAllDayArea must be false")

			workWeekViewModule.chkShowAllDayArea.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, workWeekViewModule.scheduler.WorkWeekView.ShowAllDayArea, "workWeekViewModule.scheduler.WorkWeekView.ShowAllDayArea must be true")
		End Sub
	End Class
	#End Region
	#Region "CheckWeekViewModuleFixture"
	Public Class CheckWeekViewModuleFixture
		Inherits BaseSchedulerTestingFixture
		Protected Overrides Sub CreateActions()
			MyBase.CreateActions()
			AddSimpleAction(AddressOf CreateCheckDemoActions)
		End Sub
		Private Sub CreateCheckDemoActions()
			AddLoadModuleActions(GetType(WeekView))
			AddSimpleAction(AddressOf CheckDemo)
		End Sub
		Private Sub CheckDemo()
			Dim weekViewModule As WeekView = CType(DemoBaseTesting.CurrentDemoModule, WeekView)
			Assert.AreEqual(SchedulerViewType.Week, weekViewModule.scheduler.ActiveViewType)
			Assert.AreEqual(DevExpress.XtraScheduler.FirstDayOfWeek.System, weekViewModule.scheduler.OptionsView.FirstDayOfWeek)

			For i As Integer = 0 To 7
				weekViewModule.cbFirstDayOfWeek.SelectedItem = CType(i, DevExpress.XtraScheduler.FirstDayOfWeek)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(False, weekViewModule.cbFirstDayOfWeek.HasValidationError)
				Assert.AreEqual(CType(i, DevExpress.XtraScheduler.FirstDayOfWeek), weekViewModule.scheduler.OptionsView.FirstDayOfWeek)
			Next i

			For i As Integer = 0 To 2
				weekViewModule.cbTimeDisplayType.SelectedItem = CType(i, AppointmentTimeDisplayType)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentTimeDisplayType), weekViewModule.scheduler.WeekView.AppointmentDisplayOptions.TimeDisplayType)
			Next i

			For i As Integer = 0 To 2
				weekViewModule.cbTimeDisplayType.SelectedItem = CType(i, AppointmentTimeDisplayType)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentTimeDisplayType), weekViewModule.scheduler.WeekView.AppointmentDisplayOptions.TimeDisplayType)
			Next i

			For i As Integer = 0 To 2
				weekViewModule.cbStartTimeVisibility.SelectedItem = CType(i, AppointmentTimeVisibility)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentTimeVisibility), weekViewModule.scheduler.WeekView.AppointmentDisplayOptions.StartTimeVisibility)
			Next i

			For i As Integer = 0 To 2
				weekViewModule.cbEndTimeVisibility.SelectedItem = CType(i, AppointmentTimeVisibility)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentTimeVisibility), weekViewModule.scheduler.WeekView.AppointmentDisplayOptions.EndTimeVisibility)
			Next i
		End Sub
	End Class
	#End Region
	#Region "CheckMonthViewModuleFixture"
	Public Class CheckMonthViewModuleFixture
		Inherits BaseSchedulerTestingFixture
		Protected Overrides Sub CreateActions()
			MyBase.CreateActions()
			AddSimpleAction(AddressOf CreateCheckDemosActions)
		End Sub
		Private Sub CreateCheckDemosActions()
			AddLoadModuleActions(GetType(MonthView))
			AddSimpleAction(AddressOf CheckDemo)
		End Sub
		Private Sub CheckDemo()
			Dim monthViewModule As MonthView = CType(DemoBaseTesting.CurrentDemoModule, MonthView)
			Dim initialWeekCount As Integer = 5
			Assert.AreEqual(SchedulerViewType.Month, monthViewModule.scheduler.ActiveViewType)
			Assert.AreEqual(initialWeekCount, monthViewModule.scheduler.MonthView.WeekCount)

			For i As Integer = initialWeekCount + 1 To 10
				monthViewModule.spnWeekCount.SpinUp()
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(False, monthViewModule.spnWeekCount.HasValidationError)
				Assert.AreEqual(i, monthViewModule.scheduler.MonthView.WeekCount)
			Next i

			Assert.AreEqual(DevExpress.XtraScheduler.FirstDayOfWeek.System, monthViewModule.scheduler.OptionsView.FirstDayOfWeek)

			For i As Integer = 0 To 7
				monthViewModule.cbFirstDayOfWeek.SelectedItem = CType(i, DevExpress.XtraScheduler.FirstDayOfWeek)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(False, monthViewModule.cbFirstDayOfWeek.HasValidationError)
				Assert.AreEqual(CType(i, DevExpress.XtraScheduler.FirstDayOfWeek), monthViewModule.scheduler.OptionsView.FirstDayOfWeek)
			Next i

			Assert.AreEqual(True, monthViewModule.chCompressWeekend.IsChecked)
			Assert.AreEqual(True, monthViewModule.scheduler.MonthView.CompressWeekend)
			monthViewModule.chCompressWeekend.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, monthViewModule.scheduler.MonthView.CompressWeekend)

			Assert.AreEqual(True, monthViewModule.scheduler.MonthView.ShowWeekend)
			Assert.AreEqual(True, monthViewModule.chShowWeekend.IsChecked)
			monthViewModule.chShowWeekend.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, monthViewModule.scheduler.MonthView.ShowWeekend)

			Assert.AreEqual(False, monthViewModule.chShowRecurrence.IsChecked)
			Assert.AreEqual(False, monthViewModule.scheduler.MonthView.AppointmentDisplayOptions.ShowRecurrence)
			monthViewModule.chShowRecurrence.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, monthViewModule.scheduler.MonthView.AppointmentDisplayOptions.ShowRecurrence)

			For i As Integer = 0 To 2
				monthViewModule.cbStatusDisplayType.SelectedItem = CType(i, AppointmentStatusDisplayType)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentStatusDisplayType), monthViewModule.scheduler.MonthView.AppointmentDisplayOptions.StatusDisplayType)
			Next i

			For i As Integer = 0 To 2
				monthViewModule.cbTimeDisplayType.SelectedItem = CType(i, AppointmentTimeDisplayType)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentTimeDisplayType), monthViewModule.scheduler.MonthView.AppointmentDisplayOptions.TimeDisplayType)
			Next i

			For i As Integer = 0 To 2
				monthViewModule.cbStartTimeVisibility.SelectedItem = CType(i, AppointmentTimeVisibility)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentTimeVisibility), monthViewModule.scheduler.MonthView.AppointmentDisplayOptions.StartTimeVisibility)
			Next i

			For i As Integer = 0 To 2
				monthViewModule.cbEndTimeVisibility.SelectedItem = CType(i, AppointmentTimeVisibility)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentTimeVisibility), monthViewModule.scheduler.MonthView.AppointmentDisplayOptions.EndTimeVisibility)
			Next i
		End Sub
	End Class
	#End Region
	#Region "CheckTimeLineViewModuleFixture"
	Public Class CheckTimeLineViewModuleFixture
		Inherits BaseSchedulerTestingFixture
		Protected Overrides Sub CreateActions()
			MyBase.CreateActions()
			AddSimpleAction(AddressOf CreateCheckDemosActions)
		End Sub
		Private Sub CreateCheckDemosActions()
			AddLoadModuleActions(GetType(TimeLineView))
			AddSimpleAction(AddressOf CheckDemo)
		End Sub
		Private Sub CheckDemo()
			Dim timeLineViewModule As TimeLineView = CType(DemoBaseTesting.CurrentDemoModule, TimeLineView)
			Dim initialIntervalCount As Integer = 10
			Dim initialSelectionBarHeight As Integer = 0
			Dim scheduler As SchedulerControl = timeLineViewModule.scheduler
			Assert.AreEqual(SchedulerViewType.Timeline, scheduler.ActiveViewType)
			Dim timelineView As DevExpress.Xpf.Scheduler.TimelineView = scheduler.TimelineView
			Assert.AreEqual(initialIntervalCount, timelineView.IntervalCount)
			Dim selectionBar As SchedulerSelectionBarOptions = timelineView.SelectionBar
			Assert.AreEqual(initialSelectionBarHeight, selectionBar.Height)

			For i As Integer = initialIntervalCount - 1 To 1 Step -1
				timeLineViewModule.spnIntervalCount.SpinDown()
				If initialIntervalCount \ 2 - 1 < i AndAlso i < initialIntervalCount \ 2 + 1 Then
					timeLineViewModule.chkVisible.IsChecked = False
				Else
					timeLineViewModule.chkVisible.IsChecked = True
				End If
				UpdateLayoutAndDoEvents()
				If selectionBar.Visible Then
					Assert.AreEqual(i, GetSelectionBarElementCount(scheduler))
				End If
				Assert.AreEqual(False, timeLineViewModule.spnIntervalCount.HasValidationError)
				Assert.AreEqual(i, timelineView.IntervalCount)
			Next i

			For i As Integer = 0 To 2
				timeLineViewModule.cbSnapToCellsMode.SelectedItem = CType(i, AppointmentSnapToCellsMode)
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(CType(i, AppointmentSnapToCellsMode), timelineView.AppointmentDisplayOptions.SnapToCellsMode)
			Next i

			Assert.AreEqual(True, timeLineViewModule.chkVisible.IsChecked)

			For i As Integer = 20 To 10
				timeLineViewModule.spnSelectionBarHeight.SpinUp()
				UpdateLayoutAndDoEvents()
				Assert.AreEqual(i, selectionBar.Height)
			Next i

			timeLineViewModule.chkVisible.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, selectionBar.Visible)

			Assert.AreEqual(False, timeLineViewModule.chYearScaleEnabled.IsChecked)
			Assert.AreEqual(False, timelineView.Scales(0).Enabled)
			timeLineViewModule.chYearScaleEnabled.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, timelineView.Scales(0).Enabled)

			Assert.AreEqual(True, timeLineViewModule.chYearScaleVisible.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(0).Visible)
			timeLineViewModule.chYearScaleVisible.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(0).Visible)

			Assert.AreEqual(False, timeLineViewModule.chQuarterScaleEnabled.IsChecked)
			Assert.AreEqual(False, timelineView.Scales(1).Enabled)
			timeLineViewModule.chQuarterScaleEnabled.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, timelineView.Scales(1).Enabled)

			Assert.AreEqual(True, timeLineViewModule.chQuarterScaleVisible.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(1).Visible)
			timeLineViewModule.chQuarterScaleVisible.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(1).Visible)

			Assert.AreEqual(False, timeLineViewModule.chMonthScaleEnabled.IsChecked)
			Assert.AreEqual(False, timelineView.Scales(2).Enabled)
			timeLineViewModule.chMonthScaleEnabled.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, timelineView.Scales(2).Enabled)

			Assert.AreEqual(True, timeLineViewModule.chMonthScaleVisible.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(2).Visible)
			timeLineViewModule.chMonthScaleVisible.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(2).Visible)

			Assert.AreEqual(True, timeLineViewModule.chWeekScaleEnabled.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(3).Enabled)
			timeLineViewModule.chWeekScaleEnabled.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(3).Enabled)

			Assert.AreEqual(True, timeLineViewModule.chWeekScaleVisible.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(3).Visible)
			timeLineViewModule.chWeekScaleVisible.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(3).Visible)

			Assert.AreEqual(True, timeLineViewModule.chDayScaleEnabled.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(4).Enabled)
			timeLineViewModule.chDayScaleEnabled.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(4).Enabled)

			Assert.AreEqual(False, timeLineViewModule.chHourScaleEnabled.IsChecked)
			Assert.AreEqual(False, timelineView.Scales(5).Enabled)
			timeLineViewModule.chHourScaleEnabled.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, timelineView.Scales(5).Enabled)

			Assert.AreEqual(True, timeLineViewModule.chHourScaleVisible.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(5).Visible)
			timeLineViewModule.chHourScaleVisible.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(5).Visible)

			Assert.AreEqual(False, timeLineViewModule.chMin15ScaleEnabled.IsChecked)
			Assert.AreEqual(False, timelineView.Scales(6).Enabled)
			timeLineViewModule.chMin15ScaleEnabled.IsChecked = True
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(True, timelineView.Scales(6).Enabled)

			Assert.AreEqual(True, timeLineViewModule.chMin15ScaleVisible.IsChecked)
			Assert.AreEqual(True, timelineView.Scales(6).Visible)
			timeLineViewModule.chMin15ScaleVisible.IsChecked = False
			UpdateLayoutAndDoEvents()
			Assert.AreEqual(False, timelineView.Scales(6).Visible)
		End Sub
		Private Function GetSelectionBarElementCount(ByVal scheduler As SchedulerControl) As Integer
			Dim result As New List(Of FrameworkElement)()
			Dim treeWalker As New VisualTreeEnumerator(scheduler)
			Do While treeWalker.MoveNext()
				Dim fe As FrameworkElement = TryCast(treeWalker.Current, FrameworkElement)
				If fe Is Nothing Then
					Continue Do
				End If
				If IsRootSelectionBarCell(fe, result) Then
					result.Add(fe)
				End If
			Loop
			Return result.Count
		End Function
		Private Function IsRootSelectionBarCell(ByVal element As FrameworkElement, ByVal roots As List(Of FrameworkElement)) As Boolean
			Dim hitTest As SchedulerHitTest = SchedulerControl.GetHitTestType(element)
			If hitTest.Equals(SchedulerHitTest.SelectionBarCell) Then
				For Each fe As FrameworkElement In roots
					If LayoutHelper.IsChildElement(fe, element) Then
						Return False
					End If
				Next fe
				Return True
			End If
			Return False
		End Function
	End Class
	#End Region

	#Region "CheckGroupByResourceFixture"
	Public Class CheckGroupByResourceFixture
		Inherits BaseSchedulerTestingFixture
		Protected Overrides Sub CreateActions()
			MyBase.CreateActions()
			AddSimpleAction(AddressOf CreateCheckDemoActions)
		End Sub
		Private Sub CreateCheckDemoActions()
			AddLoadModuleActions(GetType(GroupByResource))
			AddSimpleAction(AddressOf CheckDemo)
		End Sub
		Private Sub CheckDemo()
			Dim [module] As GroupByResource = CType(DemoBaseTesting.CurrentDemoModule, GroupByResource)

			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Day)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Resource)

			[module].viewType.EditValue = SchedulerViewType.Week
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Week)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Resource)

			[module].viewType.EditValue = SchedulerViewType.WorkWeek
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.WorkWeek)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Resource)

			[module].viewType.EditValue = SchedulerViewType.Month
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Month)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Resource)

			[module].viewType.EditValue = SchedulerViewType.Timeline
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Timeline)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Resource)
		End Sub
	End Class
	#End Region
	#Region "CheckGroupByDateModuleFixture"
	Public Class CheckGroupByDateModuleFixture
		Inherits BaseSchedulerTestingFixture
		Protected Overrides Sub CreateActions()
			MyBase.CreateActions()
			AddSimpleAction(AddressOf CreateCheckDemoActions)
		End Sub
		Private Sub CreateCheckDemoActions()
			AddLoadModuleActions(GetType(GroupByDate))
			AddSimpleAction(AddressOf CheckDemo)
		End Sub
		Private Sub CheckDemo()
			Dim [module] As GroupByDate = CType(DemoBaseTesting.CurrentDemoModule, GroupByDate)

			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Day)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Date)

			[module].viewType.EditValue = SchedulerViewType.Week
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Week)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Date)

			[module].viewType.EditValue = SchedulerViewType.WorkWeek
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.WorkWeek)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Date)

			[module].viewType.EditValue = SchedulerViewType.Month
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Month)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Date)

			[module].viewType.EditValue = SchedulerViewType.Timeline
			UpdateLayoutAndDoEvents()
			Assert.AreEqual([module].scheduler.ActiveViewType, SchedulerViewType.Timeline)
			Assert.AreEqual([module].scheduler.GroupType, SchedulerGroupType.Date)
		End Sub
	End Class
	#End Region
End Namespace