DeckPresenterTests.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // -----------------------------------------------------------------------
  2. // <copyright file="DeckPresenterTests.cs" company="Steven Kirk">
  3. // Copyright 2015 MIT Licence. See licence.md for more information.
  4. // </copyright>
  5. // -----------------------------------------------------------------------
  6. namespace Perspex.Controls.UnitTests.Presenters
  7. {
  8. using Perspex.Controls.Generators;
  9. using Perspex.Controls.Presenters;
  10. using Perspex.Controls.Templates;
  11. using Xunit;
  12. public class DeckPresenterTests
  13. {
  14. [Fact]
  15. public void ApplyTemplate_Should_Create_Panel()
  16. {
  17. var target = new DeckPresenter
  18. {
  19. ItemsPanel = new FuncTemplate<IPanel>(() => new Panel()),
  20. };
  21. target.ApplyTemplate();
  22. Assert.IsType<Panel>(target.Panel);
  23. }
  24. [Fact]
  25. public void ItemContainerGenerator_Should_Be_Picked_Up_From_TemplatedControl()
  26. {
  27. var parent = new TestItemsControl();
  28. var target = new DeckPresenter
  29. {
  30. TemplatedParent = parent,
  31. };
  32. Assert.IsType<ItemContainerGenerator<TestItem>>(target.ItemContainerGenerator);
  33. }
  34. [Fact]
  35. public void Setting_SelectedIndex_Should_Show_Page()
  36. {
  37. var target = new DeckPresenter
  38. {
  39. Items = new[] { "foo", "bar" },
  40. SelectedIndex = 0,
  41. };
  42. target.ApplyTemplate();
  43. Assert.IsType<TextBlock>(target.Panel.Children[0]);
  44. Assert.Equal("foo", ((TextBlock)target.Panel.Children[0]).Text);
  45. }
  46. [Fact]
  47. public void Changing_SelectedIndex_Should_Show_Page()
  48. {
  49. var target = new DeckPresenter
  50. {
  51. Items = new[] { "foo", "bar" },
  52. SelectedIndex = 0,
  53. };
  54. target.ApplyTemplate();
  55. target.SelectedIndex = 1;
  56. Assert.IsType<TextBlock>(target.Panel.Children[0]);
  57. Assert.Equal("bar", ((TextBlock)target.Panel.Children[0]).Text);
  58. }
  59. private class TestItem : ContentControl
  60. {
  61. }
  62. private class TestItemsControl : ItemsControl
  63. {
  64. protected override IItemContainerGenerator CreateItemContainerGenerator()
  65. {
  66. return new ItemContainerGenerator<TestItem>(this);
  67. }
  68. }
  69. }
  70. }