| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | using System;using System.Collections.Generic;using System.Text;using System.Windows;using System.Windows.Media;using PixiEditor;using PixiEditor.Models.Controllers;using PixiEditor.Models.DataHolders;using PixiEditor.Models.Layers;using PixiEditor.Models.Position;using PixiEditor.Models.Tools;using PixiEditor.Models.Tools.Tools;using PixiEditor.Models.Tools.ToolSettings;using Xunit;namespace PixiEditorTests.ModelsTests.ControllersTests{    public class BitmapManagerTests    {        [Fact]        public void TestThatBitmapManagerSetsCorrectTool()        {             BitmapManager bitmapManager = new BitmapManager();             bitmapManager.SetActiveTool(new MockedSinglePixelPen());             Assert.Equal(ToolType.Pen, bitmapManager.SelectedTool.ToolType);        }        [Fact]        public void TestThatBitmapManagerAddsEmptyNewLayer()        {            string layerName = "TestLayer";            BitmapManager bitmapManager = new BitmapManager            {                ActiveDocument = new Document(10, 10)            };            bitmapManager.AddNewLayer(layerName);            Assert.Single(bitmapManager.ActiveDocument.Layers);            Assert.Equal(layerName, bitmapManager.ActiveDocument.ActiveLayer.Name);            Assert.Equal(0, bitmapManager.ActiveDocument.ActiveLayer.Width + bitmapManager.ActiveDocument.ActiveLayer.Height);        }        [Fact]        public void TestThatBitmapManagerRemovesLayer()        {            BitmapManager bitmapManager = new BitmapManager            {                ActiveDocument = new Document(10, 10)            };            bitmapManager.AddNewLayer("_");            bitmapManager.AddNewLayer("_1");            Assert.Equal(2,bitmapManager.ActiveDocument.Layers.Count);            bitmapManager.RemoveLayer(0);            Assert.Single(bitmapManager.ActiveDocument.Layers);        }        [Fact]        public void TestThatGeneratePreviewLayerGeneratesPreviewLayer()        {            BitmapManager bitmapManager = new BitmapManager            {                ActiveDocument = new Document(10, 10)            };            bitmapManager.GeneratePreviewLayer();            Assert.NotNull(bitmapManager.PreviewLayer);            Assert.Equal(0, bitmapManager.PreviewLayer.Width + bitmapManager.PreviewLayer.Height); //Size is zero            Assert.Equal(0, bitmapManager.PreviewLayer.OffsetX + bitmapManager.PreviewLayer.OffsetY); //Offset is zero            Assert.Equal(bitmapManager.ActiveDocument.Width,bitmapManager.PreviewLayer.MaxWidth);            Assert.Equal(bitmapManager.ActiveDocument.Height,bitmapManager.PreviewLayer.MaxHeight);        }        [Fact]        public void TestThatIsOperationToolWorks()        {            MockedSinglePixelPen singlePixelPen = new MockedSinglePixelPen();            Assert.True(BitmapManager.IsOperationTool(singlePixelPen));        }        [StaFact]        public void TestThatBitmapChangesExecuteToolExecutesPenTool()        {            BitmapManager bitmapManager = new BitmapManager            {                ActiveDocument = new Document(5, 5)            };            bitmapManager.AddNewLayer("Layer");            bitmapManager.SetActiveTool(new MockedSinglePixelPen());            bitmapManager.PrimaryColor = Colors.Green;            bitmapManager.MouseController.StartRecordingMouseMovementChanges(true);            bitmapManager.MouseController.RecordMouseMovementChange(new Coordinates(1, 1));            bitmapManager.MouseController.StopRecordingMouseMovementChanges();            bitmapManager.ExecuteTool(new Coordinates(1, 1), true);            Assert.Equal(Colors.Green, bitmapManager.ActiveLayer.GetPixelWithOffset(1, 1));        }    }    public class MockedSinglePixelPen : BitmapOperationTool    {        public override LayerChange[] Use(Layer layer, Coordinates[] mouseMove, Color color)        {            return Only(                BitmapPixelChanges.FromSingleColoredArray(new[] {mouseMove[0]}, color),0);        }        public override ToolType ToolType { get; } = ToolType.Pen;    }}
 |