4 changed files with 232 additions and 36 deletions
@ -0,0 +1,154 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="SelectingItemsControlTests.cs" company="Steven Kirk">
|
|||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Controls.Primitives.UnitTests |
|||
{ |
|||
using Perspex.Controls.Presenters; |
|||
using Perspex.Controls.Primitives; |
|||
using Perspex.Input; |
|||
using Xunit; |
|||
|
|||
public class SelectingItemsControlTests |
|||
{ |
|||
[Fact] |
|||
public void Item_IsSelected_Should_Initially_Be_False() |
|||
{ |
|||
var items = new[] |
|||
{ |
|||
new Item(), |
|||
new Item(), |
|||
}; |
|||
|
|||
var target = new Target |
|||
{ |
|||
Items = items, |
|||
}; |
|||
|
|||
Assert.False(items[0].IsSelected); |
|||
Assert.False(items[1].IsSelected); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedItem_Should_Set_Item_IsSelected_True() |
|||
{ |
|||
var items = new[] |
|||
{ |
|||
new Item(), |
|||
new Item(), |
|||
}; |
|||
|
|||
var target = new Target |
|||
{ |
|||
Items = items, |
|||
}; |
|||
|
|||
target.Template = this.Template(); |
|||
target.ApplyTemplate(); |
|||
target.SelectedItem = items[1]; |
|||
|
|||
Assert.False(items[0].IsSelected); |
|||
Assert.True(items[1].IsSelected); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedItem_Should_Set_SelectedIndex() |
|||
{ |
|||
var items = new[] |
|||
{ |
|||
new Item(), |
|||
new Item(), |
|||
}; |
|||
|
|||
var target = new Target |
|||
{ |
|||
Items = items, |
|||
}; |
|||
|
|||
target.Template = this.Template(); |
|||
target.ApplyTemplate(); |
|||
target.SelectedItem = items[1]; |
|||
|
|||
Assert.Equal(1, target.SelectedIndex); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedIndex_Should_Set_SelectedItem() |
|||
{ |
|||
var items = new[] |
|||
{ |
|||
new Item(), |
|||
new Item(), |
|||
}; |
|||
|
|||
var target = new Target |
|||
{ |
|||
Items = items, |
|||
}; |
|||
|
|||
target.Template = this.Template(); |
|||
target.ApplyTemplate(); |
|||
target.SelectedIndex = 1; |
|||
|
|||
Assert.Equal(items[1], target.SelectedItem); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedIndex_Should_Coerce() |
|||
{ |
|||
var items = new[] |
|||
{ |
|||
new Item(), |
|||
new Item(), |
|||
}; |
|||
|
|||
var target = new Target |
|||
{ |
|||
Items = items, |
|||
}; |
|||
|
|||
target.Template = this.Template(); |
|||
target.ApplyTemplate(); |
|||
target.SelectedIndex = 2; |
|||
|
|||
Assert.Equal(1, target.SelectedIndex); |
|||
} |
|||
|
|||
[Fact] |
|||
public void PointerPressed_Event_Should_Be_Handled() |
|||
{ |
|||
var target = new Target(); |
|||
|
|||
var e = new PointerPressEventArgs |
|||
{ |
|||
RoutedEvent = InputElement.PointerPressedEvent |
|||
}; |
|||
|
|||
target.RaiseEvent(e); |
|||
|
|||
Assert.True(e.Handled); |
|||
} |
|||
|
|||
private ControlTemplate Template() |
|||
{ |
|||
return ControlTemplate.Create<Target>(control => |
|||
new ItemsPresenter |
|||
{ |
|||
Id = "itemsPresenter", |
|||
[~ItemsPresenter.ItemsProperty] = control[~ListBox.ItemsProperty], |
|||
[~ItemsPresenter.ItemsPanelProperty] = control[~ListBox.ItemsPanelProperty], |
|||
}); |
|||
} |
|||
|
|||
private class Target : SelectingItemsControl |
|||
{ |
|||
} |
|||
|
|||
private class Item : Control, ISelectable |
|||
{ |
|||
public bool IsSelected { get; set; } |
|||
} |
|||
} |
|||
} |
|||
@ -1,34 +0,0 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="SelectingItemsControlTests.cs" company="Steven Kirk">
|
|||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Controls.UnitTests |
|||
{ |
|||
using Perspex.Controls.Primitives; |
|||
using Perspex.Input; |
|||
using Xunit; |
|||
|
|||
public class SelectingItemsControlTests |
|||
{ |
|||
[Fact] |
|||
public void PointerPressed_Event_Should_Be_Handled() |
|||
{ |
|||
var target = new Target(); |
|||
|
|||
var e = new PointerPressEventArgs |
|||
{ |
|||
RoutedEvent = InputElement.PointerPressedEvent |
|||
}; |
|||
|
|||
target.RaiseEvent(e); |
|||
|
|||
Assert.True(e.Handled); |
|||
} |
|||
|
|||
private class Target : SelectingItemsControl |
|||
{ |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue