示例#1
0
        public void GetRotationParametersForImage_ImageMisOriented_ReturnsCorrectEncoderParameters(ImageOrientation orientation, EncoderValue[] expectedValues)
        {
            // Arrange
            var image   = Fake.Image(orientation);
            var factory = Fake.ImageFactory(image);
            var rotator = new ImageRotator(factory);

            // Act
            var parameters = rotator.GetRotationParameters(image);

            // Assert
            Assert.IsNotNull(parameters);
            Assert.AreEqual(expectedValues.Length, parameters.Param.Length);

            foreach (var val in expectedValues)
            {
                Assert.IsTrue(parameters.Param.Any(param =>
                {
                    var valueField   = param.GetType().GetField("_parameterValue", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                    var valuePointer = (IntPtr)valueField.GetValue(param);
                    var value        = (EncoderValue)Marshal.ReadInt32(valuePointer);

                    return(param.Encoder.Guid == Encoder.Transformation.Guid &&
                           param.NumberOfValues == 1 &&
                           param.ValueType == EncoderParameterValueType.ValueTypeLong &&
                           value == val);
                }));
            }
        }
示例#2
0
        public void GetRotationParametersForImage_ImageNull_ThrowsArgumentException()
        {
            // Arrange
            var factory = Fake.ImageFactory(Fake.Image());
            var rotator = new ImageRotator(factory);

            // Act, Assert
            Assert.Throws <ArgumentException>(() => rotator.GetRotationParameters((IImage)null));
        }
示例#3
0
        public void GetRotationParametersForImage_OrientationIsTopLeft_ReturnsNull()
        {
            // Arrange
            var image   = Fake.Image(ImageOrientation.TopLeft);
            var factory = Fake.ImageFactory(image);
            var rotator = new ImageRotator(factory);

            // Act
            var parameters = rotator.GetRotationParameters(image);

            // Assert
            Assert.IsNull(parameters);
        }