Browse Source

Added tests

CPKreuz 4 years ago
parent
commit
645e45c4fb

+ 1 - 1
PixiEditor/Models/Tools/ToolBuilder.cs

@@ -23,7 +23,7 @@ namespace PixiEditor.Models.Tools
         /// Constructs a new tool of type <typeparamref name="T"/> and injects all services of <paramref name="services"/>
         /// </summary>
         public static T BuildTool<T>(IServiceProvider services)
-            where T : Tool, new()
+            where T : Tool
             => (T)BuildTool(typeof(T), services);
 
         /// <summary>

+ 16 - 4
PixiEditorTests/Helpers.cs → PixiEditorTests/Helpers/ViewModelHelper.cs

@@ -4,12 +4,24 @@ using PixiEditor.Models.Tools;
 using PixiEditor.Models.UserPreferences;
 using PixiEditor.ViewModels;
 using PixiEditor.ViewModels.SubViewModels.Main;
+using PixiEditorTests.Mocks;
 using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
 
-namespace PixiEditorTests
+namespace PixiEditorTests.HelpersTests
 {
-    public static class Helpers
+    public static class ViewModelHelper
     {
+        public static IServiceCollection GetViewModelMainCollection()
+        {
+            return new ServiceCollection()
+                .AddScoped<IPreferences, PreferenceSettingsMock>()
+                .AddSingleton<BitmapManager>();
+        }
+
         public static ViewModelMain MockedViewModelMain()
         {
             IServiceCollection provider = MockedServiceCollection();
@@ -27,7 +39,7 @@ namespace PixiEditorTests
         }
 
         public static T BuildMockedTool<T>(bool requireViewModelMain = false)
-            where T : Tool, new()
+            where T : Tool
         {
             IServiceProvider services;
 
@@ -43,4 +55,4 @@ namespace PixiEditorTests
             return ToolBuilder.BuildTool<T>(services);
         }
     }
-}
+}

+ 1 - 1
PixiEditorTests/HelpersTests/ConvertersTests/DoubleToIntConverterTest.cs

@@ -2,7 +2,7 @@
 using PixiEditor.Helpers.Converters;
 using Xunit;
 
-namespace PixiEditorTests.HelpersTests.ConvertersTests
+namespace PixiEditorTests.Helpers
 {
     public class DoubleToIntConverterTest
     {

+ 42 - 0
PixiEditorTests/HelpersTests/DependencyInjectionTests.cs

@@ -0,0 +1,42 @@
+using Microsoft.Extensions.DependencyInjection;
+using PixiEditor.Helpers;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Xunit;
+
+namespace PixiEditorTests.HelpersTests
+{
+    [Collection("Application collection")]
+    public class DependencyInjectionTests
+    {
+        private class TestService
+        {
+        }
+
+        private class TestInjectable
+        {
+            public TestService TestService { get; }
+
+            public TestInjectable(TestService service)
+            {
+                TestService = service;
+            }
+        }
+
+        [Fact]
+        public void TestThatInjectingWorks()
+        {
+            IServiceProvider provider = new ServiceCollection()
+                .AddSingleton<TestService>()
+                .BuildServiceProvider();
+
+            TestInjectable injectable = provider.Inject<TestInjectable>();
+
+            Assert.NotNull(injectable.TestService);
+        }
+
+    }
+}

+ 0 - 22
PixiEditorTests/HelpersTests/ViewModelHelper.cs

@@ -1,22 +0,0 @@
-using Microsoft.Extensions.DependencyInjection;
-using PixiEditor.Models.Controllers;
-using PixiEditor.Models.UserPreferences;
-using PixiEditorTests.Mocks;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PixiEditorTests.HelpersTests
-{
-    public static class ViewModelHelper
-    {
-        public static IServiceCollection GetViewModelMainCollection()
-        {
-            return new ServiceCollection()
-                .AddScoped<IPreferences, PreferenceSettingsMock>()
-                .AddSingleton<BitmapManager>();
-        }
-    }
-}

+ 2 - 1
PixiEditorTests/ModelsTests/DataHoldersTests/DocumentTests.cs

@@ -6,6 +6,7 @@ using PixiEditor.Models.Enums;
 using PixiEditor.Models.Layers;
 using PixiEditor.Models.Position;
 using PixiEditor.ViewModels;
+using PixiEditorTests.HelpersTests;
 using Xunit;
 
 namespace PixiEditorTests.ModelsTests.DataHoldersTests
@@ -301,7 +302,7 @@ namespace PixiEditorTests.ModelsTests.DataHoldersTests
         [StaFact]
         public void TestThatDocumentGetsAddedToRecentlyOpenedList()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             Document document = new Document(1, 1)
             {

+ 2 - 2
PixiEditorTests/ModelsTests/ToolsTests/PenToolTests.cs

@@ -1,6 +1,6 @@
 using PixiEditor.Models.Position;
-using PixiEditor.Models.Tools;
 using PixiEditor.Models.Tools.Tools;
+using PixiEditorTests.HelpersTests;
 using Xunit;
 
 namespace PixiEditorTests.ModelsTests.ToolsTests
@@ -11,7 +11,7 @@ namespace PixiEditorTests.ModelsTests.ToolsTests
         [StaFact]
         public void TestThatPixelPerfectPenReturnsShapeWithoutLShapePixels()
         {
-            PenTool pen = Helpers.BuildMockedTool<PenTool>();
+            PenTool pen = ViewModelHelper.BuildMockedTool<PenTool>();
 
             Coordinates start = new Coordinates(0, 0);
             Coordinates end = new Coordinates(0, 0);

+ 3 - 4
PixiEditorTests/ModelsTests/ToolsTests/ZoomToolTests.cs

@@ -1,8 +1,7 @@
-using Microsoft.Extensions.DependencyInjection;
-using PixiEditor.Models.Tools;
+using PixiEditor.Models.Tools;
 using PixiEditor.Models.Tools.Tools;
-using PixiEditor.Models.UserPreferences;
 using PixiEditor.ViewModels;
+using PixiEditorTests.HelpersTests;
 using Xunit;
 
 namespace PixiEditorTests.ModelsTests.ToolsTests
@@ -13,7 +12,7 @@ namespace PixiEditorTests.ModelsTests.ToolsTests
         [StaFact]
         public void TestThatZoomSetsActiveDocumentZoomPercentage()
         {
-            ViewModelMain vm = Helpers.MockedViewModelMain();
+            ViewModelMain vm = ViewModelHelper.MockedViewModelMain();
             vm.BitmapManager.ActiveDocument = new PixiEditor.Models.DataHolders.Document(10, 10);
             ZoomTool zoomTool = ToolBuilder.BuildTool<ZoomTool>(vm.Services);
             double zoom = 110;

+ 16 - 21
PixiEditorTests/ViewModelsTests/ViewModelMainTests.cs

@@ -1,16 +1,11 @@
-using System;
-using System.IO;
-using System.Windows.Input;
-using System.Windows.Media;
-using Microsoft.Extensions.DependencyInjection;
-using PixiEditor.Models.Controllers;
-using PixiEditor.Models.DataHolders;
-using PixiEditor.Models.IO;
+using PixiEditor.Models.DataHolders;
 using PixiEditor.Models.Position;
-using PixiEditor.Models.Tools;
 using PixiEditor.Models.Tools.Tools;
-using PixiEditor.Models.UserPreferences;
 using PixiEditor.ViewModels;
+using PixiEditorTests.HelpersTests;
+using System.IO;
+using System.Windows.Input;
+using System.Windows.Media;
 using Xunit;
 
 namespace PixiEditorTests.ViewModelsTests
@@ -21,7 +16,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatConstructorSetsUpControllersCorrectly()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             Assert.NotNull(viewModel.ChangesController);
             Assert.NotNull(viewModel.ShortcutController);
@@ -33,7 +28,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatSwapColorsCommandSwapsColors()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             viewModel.ColorsSubViewModel.PrimaryColor = Colors.Black;
             viewModel.ColorsSubViewModel.SecondaryColor = Colors.White;
@@ -47,7 +42,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatNewDocumentCreatesNewDocumentWithBaseLayer()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             viewModel.FileSubViewModel.NewDocument(5, 5);
 
@@ -58,7 +53,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatMouseMoveCommandUpdatesCurrentCoordinates()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
             viewModel.BitmapManager.ActiveDocument = new Document(10, 10);
 
             Assert.Equal(new Coordinates(0, 0), MousePositionConverter.CurrentCoordinates);
@@ -74,7 +69,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatSelectToolCommandSelectsNewTool()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             Assert.Equal(typeof(MoveViewportTool), viewModel.BitmapManager.SelectedTool.GetType());
 
@@ -86,7 +81,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatMouseUpCommandStopsRecordingMouseMovements()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             viewModel.BitmapManager.MouseController.StartRecordingMouseMovementChanges(true);
 
@@ -100,7 +95,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatNewLayerCommandCreatesNewLayer()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             viewModel.BitmapManager.ActiveDocument = new Document(1, 1);
 
@@ -114,7 +109,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatSaveDocumentCommandSavesFile()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
             string fileName = "testFile.pixi";
 
             viewModel.BitmapManager.ActiveDocument = new Document(1, 1)
@@ -132,7 +127,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatAddSwatchAddsNonDuplicateSwatch()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
             viewModel.BitmapManager.ActiveDocument = new Document(1, 1);
 
             viewModel.ColorsSubViewModel.AddSwatch(Colors.Green);
@@ -152,7 +147,7 @@ namespace PixiEditorTests.ViewModelsTests
         [InlineData(120, 150)]
         public void TestThatSelectAllCommandSelectsWholeDocument(int docWidth, int docHeight)
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             viewModel.BitmapManager.ActiveDocument = new Document(docWidth, docHeight);
 
@@ -168,7 +163,7 @@ namespace PixiEditorTests.ViewModelsTests
         [StaFact]
         public void TestThatDocumentIsNotNullReturnsTrue()
         {
-            ViewModelMain viewModel = Helpers.MockedViewModelMain();
+            ViewModelMain viewModel = ViewModelHelper.MockedViewModelMain();
 
             viewModel.BitmapManager.ActiveDocument = new Document(1, 1);