public void RaisePostBackEvent_IfDirectWriteSetAsTrue_ZoomsAndSavesImageDirectly()
        {
            // Arrange
            var toolZoom = new ToolZoom();

            _imageEditor.Toolbar.Tools.Add(toolZoom);
            _imageEditor.DirectWrite = true;

            // RaisePostBackEvent method eventArgument parameter scheme
            // float factor

            // zoom 4 times to test if all image is gray colored
            var raisePostBackEventArgs = "200";

            // select center point to be zoomed
            _imageEditor.Selection.X1 = 151;
            _imageEditor.Selection.Y1 = 76;

            // Act
            toolZoom.RaisePostBackEvent(raisePostBackEventArgs);

            // Assert
            var imagePath = _shimHttpServerUtility.Instance.MapPath(_imageEditor.ImageURL);

            using (var image = ActivePixToolsTestHelper.LoadImage(imagePath))
            {
                var firstPixelOfImage = image.GetPixel(0, 0);

                firstPixelOfImage.A.ShouldBe(Color.Gray.A);
                firstPixelOfImage.R.ShouldBe(Color.Gray.R);
                firstPixelOfImage.G.ShouldBe(Color.Gray.G);
                firstPixelOfImage.B.ShouldBe(Color.Gray.B);
            }
        }
        public void RaisePostBackEvent_IfDirectWriteSetAsFalse_ZoomsAndSavesImageToAlternativePath()
        {
            // Arrange
            var toolZoom = new ToolZoom();

            _imageEditor.Toolbar.Tools.Add(toolZoom);
            _imageEditor.DirectWrite = false;

            // RaisePostBackEvent method eventArgument parameter scheme
            // float factor

            // zoom 4 times to test if all image is gray colored
            var raisePostBackEventArgs = "200";

            // select center point to be zoomed
            _imageEditor.Selection.X1 = 151;
            _imageEditor.Selection.Y1 = 76;

            // Act
            toolZoom.RaisePostBackEvent(raisePostBackEventArgs);

            // Assert
            var alternativeDirectoryFileNames = Directory.GetFiles(ToolImagesAlternativeDirectory);

            alternativeDirectoryFileNames.Length.ShouldBe(1);

            var imagePath = alternativeDirectoryFileNames[0];

            using (var image = ActivePixToolsTestHelper.LoadImage(imagePath))
            {
                var firstPixelOfImage = image.GetPixel(0, 0);

                firstPixelOfImage.A.ShouldBe(Color.Gray.A);
                firstPixelOfImage.R.ShouldBe(Color.Gray.R);
                firstPixelOfImage.G.ShouldBe(Color.Gray.G);
                firstPixelOfImage.B.ShouldBe(Color.Gray.B);
            }
        }
        public void RaisePostBackEvent_IfSelectionValuesAreInvalid_RegistersStartupScript()
        {
            // Arrange
            var toolZoom = new ToolZoom();

            _imageEditor.Toolbar.Tools.Add(toolZoom);
            _imageEditor.DirectWrite = true;

            var registeredStartupScriptKey   = string.Empty;
            var registeredStartupScriptValue = string.Empty;

            _shimPage.RegisterStartupScriptStringString =
                (key, value) =>
            {
                registeredStartupScriptKey   = key;
                registeredStartupScriptValue = value;
                _registeredScripts[key]      = value;
            };

            // RaisePostBackEvent method eventArgument parameter scheme
            // float factor

            // no selection to make sure exception is going to be thrown inside method
            var raisePostBackEventArgs = "100";

            _imageEditor.Selection.X1 = 0;
            _imageEditor.Selection.Y1 = 0;
            _imageEditor.Selection.X2 = 0;
            _imageEditor.Selection.Y2 = 0;

            // Act
            toolZoom.RaisePostBackEvent(raisePostBackEventArgs);

            // Assert
            _registeredScripts[registeredStartupScriptKey].ShouldBe(registeredStartupScriptValue);
        }