From 102af14c4cdd65a2d0c303c905d77fd08d1b5746 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 Feb 2016 18:25:20 +0100 Subject: [PATCH] Tidied up XAML tests. Moved actual XAML loading tests into Xaml directory, removed unused classes. --- .../Perspex.Markup.Xaml.UnitTests.csproj | 11 +- .../SampleModel/Level1.cs | 44 ------- .../SampleModel/Level2.cs | 20 --- .../SampleModel/Level3.cs | 20 --- .../SampleModel/LogInViewModel.cs | 32 ----- .../SampleModel/MainWindowViewModel.cs | 41 ------ .../SampleModel/PropertyChangeNotifier.cs | 18 --- .../SampleModel/Repository.cs | 17 --- .../SampleModel/UserRepositoriesViewModel.cs | 26 ---- .../StyleTests.cs | 105 --------------- .../Templates/DataTemplateTests.cs | 5 - .../Xaml/StyleTests.cs | 122 ++++++++++++++++++ .../TreeDataTemplateTests.cs | 2 +- 13 files changed, 125 insertions(+), 338 deletions(-) delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level1.cs delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level2.cs delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level3.cs delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/LogInViewModel.cs delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/MainWindowViewModel.cs delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/PropertyChangeNotifier.cs delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Repository.cs delete mode 100644 tests/Perspex.Markup.Xaml.UnitTests/SampleModel/UserRepositoriesViewModel.cs create mode 100644 tests/Perspex.Markup.Xaml.UnitTests/Xaml/StyleTests.cs rename tests/Perspex.Markup.Xaml.UnitTests/{Templates => Xaml}/TreeDataTemplateTests.cs (95%) 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 c2ca73fa63..73b422042d 100644 --- a/tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj +++ b/tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj @@ -100,20 +100,13 @@ - - - - - - - - - + + diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level1.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level1.cs deleted file mode 100644 index e3ec6d96a3..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level1.cs +++ /dev/null @@ -1,44 +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; - -namespace Perspex.Xaml.Base.UnitTest.SampleModel -{ - public class Level1 : PropertyChangeNotifier - { - private Level2 _level2 = new Level2(); - private DateTime _dateTime; - private string _text; - - public Level2 Level2 - { - get { return _level2; } - set - { - _level2 = value; - OnPropertyChanged(); - } - } - - public string Text - { - get { return _text; } - set - { - _text = value; - OnPropertyChanged(); - } - } - - public DateTime DateTime - { - get { return _dateTime; } - set - { - _dateTime = value; - OnPropertyChanged(); - } - } - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level2.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level2.cs deleted file mode 100644 index 0862309a97..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level2.cs +++ /dev/null @@ -1,20 +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. - -namespace Perspex.Xaml.Base.UnitTest.SampleModel -{ - public class Level2 : PropertyChangeNotifier - { - private Level3 _level3 = new Level3(); - - public Level3 Level3 - { - get { return _level3; } - set - { - _level3 = value; - OnPropertyChanged(); - } - } - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level3.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level3.cs deleted file mode 100644 index c22e7c268c..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Level3.cs +++ /dev/null @@ -1,20 +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. - -namespace Perspex.Xaml.Base.UnitTest.SampleModel -{ - public class Level3 : PropertyChangeNotifier - { - private int _property = 10; - - public int Property - { - get { return _property; } - set - { - _property = value; - OnPropertyChanged(); - } - } - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/LogInViewModel.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/LogInViewModel.cs deleted file mode 100644 index 2b479b2f73..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/LogInViewModel.cs +++ /dev/null @@ -1,32 +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 ReactiveUI; - -namespace Perspex.Xaml.Base.UnitTest.SampleModel -{ - public class LogInViewModel : ReactiveObject - { - private string _username; - - public LogInViewModel() - { - OkCommand = ReactiveCommand.Create( - this.WhenAnyValue( - x => x.Username, - x => !string.IsNullOrWhiteSpace(x))); - } - - public string Username - { - get { return _username; } - set { this.RaiseAndSetIfChanged(ref _username, value); } - } - - public ReactiveCommand OkCommand - { - get; - private set; - } - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/MainWindowViewModel.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/MainWindowViewModel.cs deleted file mode 100644 index 39ea070789..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/MainWindowViewModel.cs +++ /dev/null @@ -1,41 +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.Xaml.Base.UnitTest.SampleModel; -using ReactiveUI; - -namespace GitHubClient.ViewModels -{ - public class MainWindowViewModel : ReactiveObject - { - private object _content; - - private LogInViewModel _login; - - public MainWindowViewModel() - { - ShowLogin(); - } - - public object Content - { - get { return _content; } - set { this.RaiseAndSetIfChanged(ref _content, value); } - } - - private void ShowLogin() - { - _login = new LogInViewModel(); - _login.OkCommand.Subscribe(_ => ShowRepositories()); - Content = _login; - } - - private void ShowRepositories() - { - var vm = new UserRepositoriesViewModel(); - var task = vm.Load(_login.Username); - Content = vm; - } - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/PropertyChangeNotifier.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/PropertyChangeNotifier.cs deleted file mode 100644 index c9dcebac85..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/PropertyChangeNotifier.cs +++ /dev/null @@ -1,18 +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.ComponentModel; -using System.Runtime.CompilerServices; - -namespace Perspex.Xaml.Base.UnitTest.SampleModel -{ - public abstract class PropertyChangeNotifier : INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Repository.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Repository.cs deleted file mode 100644 index dde5243264..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/Repository.cs +++ /dev/null @@ -1,17 +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. - -namespace GitHubClient.ViewModels -{ - public class Repository - { - private readonly string _name; - - public Repository(string name) - { - _name = name; - } - - public string Name => _name; - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/UserRepositoriesViewModel.cs b/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/UserRepositoriesViewModel.cs deleted file mode 100644 index 4fce0e90b4..0000000000 --- a/tests/Perspex.Markup.Xaml.UnitTests/SampleModel/UserRepositoriesViewModel.cs +++ /dev/null @@ -1,26 +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.Collections.Generic; -using System.Threading.Tasks; -using GitHubClient.ViewModels; -using ReactiveUI; - -namespace Perspex.Xaml.Base.UnitTest.SampleModel -{ - public class UserRepositoriesViewModel : ReactiveObject - { - private IReadOnlyList _repositories; - - public async Task Load(string username) - { - Repositories = await new Task>(() => new List { new Repository("Blah"), new Repository("Bleh") }); - } - - public IReadOnlyList Repositories - { - get { return _repositories; } - private set { this.RaiseAndSetIfChanged(ref _repositories, value); } - } - } -} \ No newline at end of file diff --git a/tests/Perspex.Markup.Xaml.UnitTests/StyleTests.cs b/tests/Perspex.Markup.Xaml.UnitTests/StyleTests.cs index 9c6a9715c1..4c6783c0e0 100644 --- a/tests/Perspex.Markup.Xaml.UnitTests/StyleTests.cs +++ b/tests/Perspex.Markup.Xaml.UnitTests/StyleTests.cs @@ -5,9 +5,7 @@ using System.Linq; using System.Reactive.Linq; using Perspex.Controls; using Perspex.Data; -using Perspex.Input; using Perspex.Markup.Xaml.Data; -using Perspex.Media; using Perspex.Styling; using Perspex.UnitTests; using Xunit; @@ -16,109 +14,6 @@ namespace Perspex.Markup.Xaml.UnitTests { public class StyleTests { - [Fact] - public void Color_Can_Be_Added_To_Style_Resources() - { - using (UnitTestApplication.Start(TestServices.MockPlatformWrapper)) - { - var xaml = @" - - - - -"; - var loader = new PerspexXamlLoader(); - var userControl = (UserControl)loader.Load(xaml); - var color = (Color)((Style)userControl.Styles[0]).Resources["color"]; - - Assert.Equal(0xff506070, color.ToUint32()); - } - } - - [Fact] - public void SolidColorBrush_Can_Be_Added_To_Style_Resources() - { - using (UnitTestApplication.Start(TestServices.MockPlatformWrapper)) - { - var xaml = @" - - - - -"; - var loader = new PerspexXamlLoader(); - var userControl = (UserControl)loader.Load(xaml); - var brush = (SolidColorBrush)((Style)userControl.Styles[0]).Resources["brush"]; - - Assert.Equal(0xff506070, brush.Color.ToUint32()); - } - } - - [Fact] - public void StyleResource_Can_Be_Assigned_To_Property() - { - var xaml = @" - - - - - - -"; - - var loader = new PerspexXamlLoader(); - var userControl = (UserControl)loader.Load(xaml); - var border = userControl.FindControl("border"); - var brush = (SolidColorBrush)border.Background; - - Assert.Equal(0xff506070, brush.Color.ToUint32()); - } - - [Fact] - public void StyleResource_Can_Be_Assigned_To_Setter() - { - using (UnitTestApplication.Start(TestServices.StyledWindow)) - { - var xaml = @" - - - - - -