diff --git a/tests/Perspex.Controls.UnitTests/ContentControlTests.cs b/tests/Perspex.Controls.UnitTests/ContentControlTests.cs index 9316b8a5ce..c3709ed4ff 100644 --- a/tests/Perspex.Controls.UnitTests/ContentControlTests.cs +++ b/tests/Perspex.Controls.UnitTests/ContentControlTests.cs @@ -8,6 +8,7 @@ using Perspex.Controls.Presenters; using Perspex.Controls.Templates; using Perspex.LogicalTree; using Perspex.Styling; +using Perspex.UnitTests; using Perspex.VisualTree; using Xunit; diff --git a/tests/Perspex.Controls.UnitTests/ControlTests.cs b/tests/Perspex.Controls.UnitTests/ControlTests.cs index 9955b3ed63..a4d7c65a3b 100644 --- a/tests/Perspex.Controls.UnitTests/ControlTests.cs +++ b/tests/Perspex.Controls.UnitTests/ControlTests.cs @@ -5,10 +5,8 @@ using System; using System.Collections.Generic; using System.Reactive.Linq; using Moq; -using Perspex.Layout; -using Perspex.Platform; -using Perspex.Rendering; using Perspex.Styling; +using Perspex.UnitTests; using Xunit; namespace Perspex.Controls.UnitTests @@ -147,44 +145,6 @@ namespace Perspex.Controls.UnitTests } } - private class TestRoot : Decorator, ILayoutRoot, IRenderRoot, IStyleRoot - { - public Size ClientSize - { - get { throw new NotImplementedException(); } - } - - public Size MaxClientSize - { - get { throw new NotImplementedException(); } - } - - public ILayoutManager LayoutManager - { - get { throw new NotImplementedException(); } - } - - public IRenderTarget RenderTarget - { - get { throw new NotImplementedException(); } - } - - public IRenderQueueManager RenderQueueManager - { - get { throw new NotImplementedException(); } - } - - public Point PointToClient(Point p) - { - throw new NotImplementedException(); - } - - public Point PointToScreen(Point p) - { - throw new NotImplementedException(); - } - } - private class TestControl : Control { public new PerspexObject InheritanceParent => base.InheritanceParent; diff --git a/tests/Perspex.Controls.UnitTests/ControlTests_NameScope.cs b/tests/Perspex.Controls.UnitTests/ControlTests_NameScope.cs index b7bb52379b..0941a9ce60 100644 --- a/tests/Perspex.Controls.UnitTests/ControlTests_NameScope.cs +++ b/tests/Perspex.Controls.UnitTests/ControlTests_NameScope.cs @@ -6,6 +6,7 @@ using Perspex.Controls.Presenters; using Perspex.Controls.Templates; using Perspex.Rendering; using Perspex.Styling; +using Perspex.UnitTests; using Xunit; namespace Perspex.Controls.UnitTests @@ -17,7 +18,7 @@ namespace Perspex.Controls.UnitTests { var root = new TestRoot { - Content = new Border + Child = new Border { Name = "foo", Child = new Border @@ -28,10 +29,9 @@ namespace Perspex.Controls.UnitTests }; root.ApplyTemplate(); - ((ContentPresenter)root.Presenter).UpdateChild(); - Assert.Same(root.Find("foo"), root.Content); - Assert.Same(root.Find("bar"), ((Border)root.Content).Child); + Assert.Same(root.FindControl("foo"), root.Child); + Assert.Same(root.FindControl("bar"), ((Border)root.Child).Child); } [Fact] @@ -39,7 +39,7 @@ namespace Perspex.Controls.UnitTests { var root = new TestRoot { - Content = new Border + Child = new Border { Name = "foo", Child = new Border @@ -49,18 +49,16 @@ namespace Perspex.Controls.UnitTests } }; - root.ApplyTemplate(); - root.Content = null; - root.Presenter.ApplyTemplate(); + root.Child = null; - Assert.Null(root.Find("foo")); - Assert.Null(root.Find("bar")); + Assert.Null(root.FindControl("foo")); + Assert.Null(root.FindControl("bar")); } [Fact] public void Control_Should_Not_Register_With_Template_NameScope() { - var root = new TestRoot + var root = new TestTemplatedRoot { Content = new Border { @@ -72,61 +70,5 @@ namespace Perspex.Controls.UnitTests Assert.Null(NameScope.GetNameScope((Control)root.Presenter).Find("foo")); } - - private class TestRoot : ContentControl, IRenderRoot, INameScope, IStyleRoot - { - private readonly NameScope _nameScope = new NameScope(); - - public TestRoot() - { - Template = new FuncControlTemplate(x => new ContentPresenter - { - Name = "PART_ContentPresenter", - [!ContentPresenter.ContentProperty] = x[!ContentControl.ContentProperty], - }); - } - - public event EventHandler Registered - { - add { _nameScope.Registered += value; } - remove { _nameScope.Registered -= value; } - } - - public event EventHandler Unregistered - { - add { _nameScope.Unregistered += value; } - remove { _nameScope.Unregistered -= value; } - } - - public IRenderQueueManager RenderQueueManager - { - get { throw new NotImplementedException(); } - } - - public Point PointToClient(Point p) - { - throw new NotImplementedException(); - } - - public Point PointToScreen(Point p) - { - throw new NotImplementedException(); - } - - public void Register(string name, object element) - { - _nameScope.Register(name, element); - } - - public object Find(string name) - { - return _nameScope.Find(name); - } - - public void Unregister(string name) - { - _nameScope.Unregister(name); - } - } } } diff --git a/tests/Perspex.Controls.UnitTests/GridSplitterTests.cs b/tests/Perspex.Controls.UnitTests/GridSplitterTests.cs index 5fa3e4294d..9ab985bf1d 100644 --- a/tests/Perspex.Controls.UnitTests/GridSplitterTests.cs +++ b/tests/Perspex.Controls.UnitTests/GridSplitterTests.cs @@ -3,7 +3,7 @@ using Perspex.Controls.Primitives; using Perspex.Input; using Perspex.Platform; - +using Perspex.UnitTests; using Xunit; namespace Perspex.Controls.UnitTests diff --git a/tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj b/tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj index 23415fb0b4..5704139a50 100644 --- a/tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj +++ b/tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj @@ -137,7 +137,6 @@ - @@ -151,6 +150,10 @@ {D211E587-D8BC-45B9-95A4-F297C8FA5200} Perspex.Animation + + {799a7bb5-3c2c-48b6-85a7-406a12c420da} + Perspex.Application + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base @@ -179,6 +182,10 @@ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling + + {88060192-33d5-4932-b0f9-8bd2763e857d} + Perspex.UnitTests + @@ -187,6 +194,9 @@ + + + diff --git a/tests/Perspex.Controls.UnitTests/Presenters/ContentPresenterTests.cs b/tests/Perspex.Controls.UnitTests/Presenters/ContentPresenterTests.cs index b8beafa0c4..42a490b38a 100644 --- a/tests/Perspex.Controls.UnitTests/Presenters/ContentPresenterTests.cs +++ b/tests/Perspex.Controls.UnitTests/Presenters/ContentPresenterTests.cs @@ -6,6 +6,7 @@ using Moq; using Perspex.Controls.Presenters; using Perspex.Controls.Primitives; using Perspex.Controls.Templates; +using Perspex.UnitTests; using Perspex.VisualTree; using Xunit; diff --git a/tests/Perspex.Controls.UnitTests/Primitives/PopupTests.cs b/tests/Perspex.Controls.UnitTests/Primitives/PopupTests.cs index 4751ffbfde..0354cd6e61 100644 --- a/tests/Perspex.Controls.UnitTests/Primitives/PopupTests.cs +++ b/tests/Perspex.Controls.UnitTests/Primitives/PopupTests.cs @@ -12,6 +12,7 @@ using Perspex.Layout; using Perspex.LogicalTree; using Perspex.Platform; using Perspex.Styling; +using Perspex.UnitTests; using Perspex.VisualTree; using Xunit; diff --git a/tests/Perspex.Controls.UnitTests/TestRoot.cs b/tests/Perspex.Controls.UnitTests/TestRoot.cs deleted file mode 100644 index 416197258b..0000000000 --- a/tests/Perspex.Controls.UnitTests/TestRoot.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) The Perspex Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using Moq; -using Perspex.Layout; -using Perspex.Platform; -using Perspex.Rendering; -using Perspex.Styling; - -namespace Perspex.Controls.UnitTests -{ - internal class TestRoot : Decorator, ILayoutRoot, IRenderRoot, IStyleRoot - { - public Size ClientSize => new Size(100, 100); - - public Size MaxClientSize => Size.Infinity; - - public ILayoutManager LayoutManager => new Mock().Object; - - public IRenderTarget RenderTarget - { - get { throw new NotImplementedException(); } - } - - public IRenderQueueManager RenderQueueManager => null; - - public Point PointToClient(Point p) - { - throw new NotImplementedException(); - } - - public Point PointToScreen(Point p) - { - return new Point(); - } - } -} diff --git a/tests/Perspex.Controls.UnitTests/TreeViewTests.cs b/tests/Perspex.Controls.UnitTests/TreeViewTests.cs index f28cabe0f3..73886c9f85 100644 --- a/tests/Perspex.Controls.UnitTests/TreeViewTests.cs +++ b/tests/Perspex.Controls.UnitTests/TreeViewTests.cs @@ -8,6 +8,7 @@ using Perspex.Controls.Presenters; using Perspex.Controls.Templates; using Perspex.Input; using Perspex.LogicalTree; +using Perspex.UnitTests; using Xunit; namespace Perspex.Controls.UnitTests diff --git a/tests/Perspex.Markup.UnitTests/ControlLocatorTests.cs b/tests/Perspex.Markup.UnitTests/ControlLocatorTests.cs index 19dbe5200b..3231beb950 100644 --- a/tests/Perspex.Markup.UnitTests/ControlLocatorTests.cs +++ b/tests/Perspex.Markup.UnitTests/ControlLocatorTests.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Reactive.Linq; using Perspex.Controls; +using Perspex.UnitTests; using Xunit; namespace Perspex.Markup.UnitTests diff --git a/tests/Perspex.Markup.Xaml.UnitTests/Data/BindingTests_ElementName.cs b/tests/Perspex.Markup.Xaml.UnitTests/Data/BindingTests_ElementName.cs index d1b929b4a9..dc9d75337b 100644 --- a/tests/Perspex.Markup.Xaml.UnitTests/Data/BindingTests_ElementName.cs +++ b/tests/Perspex.Markup.Xaml.UnitTests/Data/BindingTests_ElementName.cs @@ -3,6 +3,7 @@ using Perspex.Controls; using Perspex.Markup.Xaml.Data; +using Perspex.UnitTests; using Xunit; namespace Perspex.Markup.Xaml.UnitTests.Data diff --git a/tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj b/tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj index 3056b85c26..a8c501d55e 100644 --- a/tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj +++ b/tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj @@ -129,6 +129,10 @@ {D211E587-D8BC-45B9-95A4-F297C8FA5200} Perspex.Animation + + {799a7bb5-3c2c-48b6-85a7-406a12c420da} + Perspex.Application + {B09B78D8-9B26-48B0-9149-D64A2F120F3F} Perspex.Base @@ -165,6 +169,10 @@ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F} Perspex.Themes.Default + + {88060192-33d5-4932-b0f9-8bd2763e857d} + Perspex.UnitTests + diff --git a/tests/Perspex.Markup.Xaml.UnitTests/TestRoot.cs b/tests/Perspex.Markup.Xaml.UnitTests/TestRoot.cs deleted file mode 100644 index 5cc71ef9d9..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/TestRoot.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) The Perspex Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using Perspex.Controls; -using Perspex.Platform; -using Perspex.Rendering; -using Perspex.Styling; - -namespace Perspex.Markup.Xaml.UnitTests -{ - public class TestRoot : Decorator, IRenderRoot, INameScope, IStyleRoot - { - private readonly NameScope _nameScope = new NameScope(); - - event EventHandler INameScope.Registered - { - add { _nameScope.Registered += value; ++NameScopeRegisteredSubscribers; } - remove { _nameScope.Registered -= value; --NameScopeRegisteredSubscribers; } - } - - public event EventHandler Unregistered - { - add { _nameScope.Unregistered += value; ++NameScopeUnregisteredSubscribers; } - remove { _nameScope.Unregistered -= value; --NameScopeUnregisteredSubscribers; } - } - - public int NameScopeRegisteredSubscribers { get; private set; } - - public int NameScopeUnregisteredSubscribers { get; private set; } - - public IRenderTarget RenderTarget - { - get { throw new NotImplementedException(); } - } - - public IRenderQueueManager RenderQueueManager - { - get { throw new NotImplementedException(); } - } - - public Point PointToClient(Point p) - { - throw new NotImplementedException(); - } - - public Point PointToScreen(Point p) - { - throw new NotImplementedException(); - } - - public void Register(string name, object element) - { - _nameScope.Register(name, element); - } - - public object Find(string name) - { - return _nameScope.Find(name); - } - - public void Unregister(string name) - { - _nameScope.Unregister(name); - } - } -} diff --git a/tests/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj b/tests/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj index ef78b86ba2..574660616c 100644 --- a/tests/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj +++ b/tests/Perspex.Styling.UnitTests/Perspex.Styling.UnitTests.csproj @@ -104,7 +104,6 @@ - @@ -142,6 +141,10 @@ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} Perspex.Styling + + {88060192-33d5-4932-b0f9-8bd2763e857d} + Perspex.UnitTests + diff --git a/tests/Perspex.Styling.UnitTests/StyleTests.cs b/tests/Perspex.Styling.UnitTests/StyleTests.cs index 1b7455d19d..d3c9bf4447 100644 --- a/tests/Perspex.Styling.UnitTests/StyleTests.cs +++ b/tests/Perspex.Styling.UnitTests/StyleTests.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Reactive.Subjects; using Perspex.Controls; +using Perspex.UnitTests; using Xunit; namespace Perspex.Styling.UnitTests diff --git a/tests/Perspex.Styling.UnitTests/TestRoot.cs b/tests/Perspex.Styling.UnitTests/TestRoot.cs deleted file mode 100644 index ce46cd06f7..0000000000 --- a/tests/Perspex.Styling.UnitTests/TestRoot.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) The Perspex Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using Moq; -using Perspex.Controls; -using Perspex.Layout; -using Perspex.Platform; -using Perspex.Rendering; - -namespace Perspex.Styling.UnitTests -{ - internal class TestRoot : Decorator, ILayoutRoot, IRenderRoot, IStyleRoot - { - public Size ClientSize => new Size(100, 100); - - public Size MaxClientSize => Size.Infinity; - - public IRenderTarget RenderTarget - { - get { throw new NotImplementedException(); } - } - - public IRenderQueueManager RenderQueueManager - { - get { throw new NotImplementedException(); } - } - - public Point PointToClient(Point p) - { - throw new NotImplementedException(); - } - - public Point PointToScreen(Point p) - { - return new Point(); - } - } -} diff --git a/tests/Perspex.UnitTests/Perspex.UnitTests.csproj b/tests/Perspex.UnitTests/Perspex.UnitTests.csproj index 8c1b9bfcdb..de35b30d42 100644 --- a/tests/Perspex.UnitTests/Perspex.UnitTests.csproj +++ b/tests/Perspex.UnitTests/Perspex.UnitTests.csproj @@ -70,6 +70,7 @@ + diff --git a/tests/Perspex.Markup.UnitTests/TestRoot.cs b/tests/Perspex.UnitTests/TestRoot.cs similarity index 63% rename from tests/Perspex.Markup.UnitTests/TestRoot.cs rename to tests/Perspex.UnitTests/TestRoot.cs index ecd17dc0c7..3e41c4cfd6 100644 --- a/tests/Perspex.Markup.UnitTests/TestRoot.cs +++ b/tests/Perspex.UnitTests/TestRoot.cs @@ -3,13 +3,14 @@ using System; using Perspex.Controls; +using Perspex.Layout; using Perspex.Platform; using Perspex.Rendering; using Perspex.Styling; -namespace Perspex.Markup.UnitTests +namespace Perspex.UnitTests { - public class TestRoot : Decorator, IRenderRoot, INameScope, IStyleRoot + public class TestRoot : Decorator, ILayoutRoot, INameScope, IRenderRoot, IStyleRoot { private readonly NameScope _nameScope = new NameScope(); @@ -29,37 +30,31 @@ namespace Perspex.Markup.UnitTests public int NameScopeUnregisteredSubscribers { get; private set; } - public IRenderTarget RenderTarget - { - get { throw new NotImplementedException(); } - } + public Size ClientSize => new Size(100, 100); - public IRenderQueueManager RenderQueueManager - { - get { throw new NotImplementedException(); } - } + public Size MaxClientSize => Size.Infinity; - public Point PointToClient(Point p) - { - throw new NotImplementedException(); - } + public ILayoutManager LayoutManager => PerspexLocator.Current.GetService(); - public Point PointToScreen(Point p) - { - throw new NotImplementedException(); - } + public IRenderTarget RenderTarget => null; + + public IRenderQueueManager RenderQueueManager => null; + + public Point PointToClient(Point p) => p; + + public Point PointToScreen(Point p) => p; - public void Register(string name, object element) + void INameScope.Register(string name, object element) { _nameScope.Register(name, element); } - public object Find(string name) + object INameScope.Find(string name) { return _nameScope.Find(name); } - public void Unregister(string name) + void INameScope.Unregister(string name) { _nameScope.Unregister(name); } diff --git a/tests/Perspex.UnitTests/TestTemplatedRoot.cs b/tests/Perspex.UnitTests/TestTemplatedRoot.cs new file mode 100644 index 0000000000..c28b4c02a4 --- /dev/null +++ b/tests/Perspex.UnitTests/TestTemplatedRoot.cs @@ -0,0 +1,65 @@ +// Copyright (c) The Perspex Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. + +using System; +using Perspex.Controls; +using Perspex.Controls.Presenters; +using Perspex.Controls.Templates; +using Perspex.Layout; +using Perspex.Platform; +using Perspex.Rendering; +using Perspex.Styling; + +namespace Perspex.UnitTests +{ + public class TestTemplatedRoot : ContentControl, ILayoutRoot, INameScope, IRenderRoot, IStyleRoot + { + private readonly NameScope _nameScope = new NameScope(); + + public TestTemplatedRoot() + { + Template = new FuncControlTemplate(x => new ContentPresenter()); + } + + public event EventHandler Registered + { + add { _nameScope.Registered += value; } + remove { _nameScope.Registered -= value; } + } + + public event EventHandler Unregistered + { + add { _nameScope.Unregistered += value; } + remove { _nameScope.Unregistered -= value; } + } + + public Size ClientSize => new Size(100, 100); + + public Size MaxClientSize => Size.Infinity; + + public ILayoutManager LayoutManager => PerspexLocator.Current.GetService(); + + public IRenderTarget RenderTarget => null; + + public IRenderQueueManager RenderQueueManager => null; + + public Point PointToClient(Point p) => p; + + public Point PointToScreen(Point p) => p; + + void INameScope.Register(string name, object element) + { + _nameScope.Register(name, element); + } + + object INameScope.Find(string name) + { + return _nameScope.Find(name); + } + + void INameScope.Unregister(string name) + { + _nameScope.Unregister(name); + } + } +}