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); })); } }
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)); }
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); }