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 Constructor_WithoutId_CreatesObjectWithGeneratedId()
        {
            // Arrange & Act
            var toolZoom           = new ToolZoom();
            var expectedToolZoomId = string.Format("{0}{1}", ToolIdPrefix, ImageEditor.indexTools - 1);

            // Assert
            toolZoom.ID.ShouldBe(expectedToolZoomId);
        }
        public void ParentToolbarGetter_IfToolIsNotAddedIntoAnImageEditor_ReturnsNull()
        {
            // Arrange
            var toolZoom = new ToolZoom();

            // Act
            var returnedToolbar = toolZoom.ParentToolbar;

            // Assert
            returnedToolbar.ShouldBeNull();
        }
        public void ParentImageEditorGetter_IfToolIsNotAddedIntoAnImageEditor_ThrowsException()
        {
            // Arrange
            var toolZoom = new ToolZoom();

            // Act
            var getParentImageEditor = new Action(() => { var returnedImageEditor = toolZoom.ParentImageEditor; });

            // Assert
            getParentImageEditor.ShouldThrow <NullReferenceException>();
        }
        public void Constructor_WithId_CreatesObjectWithGivenId()
        {
            // Arrange
            var expectedToolZoomId = "myToolZoom";

            // Act
            var toolZoom = new ToolZoom(expectedToolZoomId);

            // Assert
            toolZoom.ID.ShouldBe(expectedToolZoomId);
        }
        public void ParentToolbarGetter_IfToolIsAddedIntoAnImageEditor_ReturnsToolbarOfImageEditor()
        {
            // Arrange
            var toolZoom = new ToolZoom();

            _imageEditor.Toolbar.Tools.Add(toolZoom);

            // Act
            var returnedToolbar = toolZoom.ParentToolbar;

            // Assert
            returnedToolbar.ShouldBeSameAs(_imageEditor.Toolbar);
        }
        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 OnPreRender_SetsButtonImages()
        {
            // Arrange
            var toolZoom = new ToolZoom();

            toolZoom.Page         = _shimPage;
            toolZoom.ImageURL     = string.Empty;
            toolZoom.OverImageURL = string.Empty;

            _imageEditor.Toolbar.Tools.Add(toolZoom);

            var toolZoomPrivateObject = new MsUnitTesting.PrivateObject(toolZoom);

            // Act
            toolZoomPrivateObject.Invoke("OnPreRender", EventArgs.Empty);

            // Assert
            TestsHelper.AssertNotFX1(ToolImageResourceName, toolZoom.ImageURL);
            TestsHelper.AssertNotFX1(ToolOverImageResourceName, toolZoom.OverImageURL);

            TestsHelper.AssertFX1(ToolImageName, toolZoom.ImageURL);
            TestsHelper.AssertFX1(ToolOverImageName, toolZoom.OverImageURL);
        }
        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);
        }