1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.templating.imaging.variation;
35
36 import static org.hamcrest.CoreMatchers.*;
37 import static org.junit.Assert.assertThat;
38 import static org.mockito.Mockito.mock;
39
40 import info.magnolia.imaging.operations.ImageOperation;
41 import info.magnolia.imaging.operations.ImageOperationChain;
42 import info.magnolia.imaging.operations.cropresize.AutoCropAndResize;
43 import info.magnolia.imaging.operations.cropresize.BoundedResize;
44 import info.magnolia.imaging.operations.cropresize.resizers.MultiStepResizer;
45 import info.magnolia.imaging.operations.load.DefaultImageIOImageDecoder;
46 import info.magnolia.imaging.operations.load.FromBinaryNode;
47 import info.magnolia.imaging.operations.load.ImageDecoder;
48 import info.magnolia.module.site.SiteManager;
49 import info.magnolia.objectfactory.ComponentProvider;
50 import info.magnolia.test.ComponentsTestUtil;
51 import info.magnolia.test.mock.MockComponentProvider;
52
53 import org.junit.After;
54 import org.junit.Before;
55 import org.junit.Test;
56
57
58
59
60 public class SimpleResizeVariationTest {
61
62 SimpleResizeVariation simpleResizeVariation;
63
64 @Before
65 public void setUp() {
66 ComponentsTestUtil.setImplementation(ImageDecoder.class, DefaultImageIOImageDecoder.class);
67 ComponentsTestUtil.setInstance(ComponentProvider.class, new MockComponentProvider());
68
69 SiteManager siteManager = mock(SiteManager.class);
70 simpleResizeVariation = new SimpleResizeVariation(siteManager);
71 }
72
73 @After
74 public void tearDown() {
75 ComponentsTestUtil.clear();
76 }
77
78 @Test
79 public void initWithCrop() {
80
81 simpleResizeVariation.setCrop(true);
82 simpleResizeVariation.setWidth(100);
83 simpleResizeVariation.setHeight(100);
84 simpleResizeVariation.init();
85
86
87 ImageOperation imageOperation = simpleResizeVariation.getImageOperation();
88
89
90 assertThat(imageOperation, instanceOf(ImageOperationChain.class));
91 assertThat(((ImageOperationChain) imageOperation).getOperations().get(0), instanceOf(FromBinaryNode.class));
92 assertThat(((ImageOperationChain) imageOperation).getOperations().get(1), instanceOf(AutoCropAndResize.class));
93 assertThat(((AutoCropAndResize) ((ImageOperationChain) imageOperation).getOperations().get(1)).getResizer(), instanceOf(MultiStepResizer.class));
94 assertThat(((AutoCropAndResize) ((ImageOperationChain) imageOperation).getOperations().get(1)).getTargetHeight(), is(100));
95 assertThat(((AutoCropAndResize) ((ImageOperationChain) imageOperation).getOperations().get(1)).getTargetWidth(), is(100));
96 }
97
98 @Test
99 public void initWithoutCrop() {
100
101 simpleResizeVariation.setCrop(false);
102 simpleResizeVariation.setWidth(100);
103 simpleResizeVariation.setHeight(100);
104 simpleResizeVariation.init();
105
106
107 ImageOperation imageOperation = simpleResizeVariation.getImageOperation();
108
109
110 assertThat(imageOperation, instanceOf(ImageOperationChain.class));
111 assertThat(((ImageOperationChain) imageOperation).getOperations().get(0), instanceOf(FromBinaryNode.class));
112 assertThat(((ImageOperationChain) imageOperation).getOperations().get(1), instanceOf(BoundedResize.class));
113 assertThat(((BoundedResize) ((ImageOperationChain) imageOperation).getOperations().get(1)).getResizer(), instanceOf(MultiStepResizer.class));
114 assertThat(((BoundedResize) ((ImageOperationChain) imageOperation).getOperations().get(1)).getMaxHeight(), is(100));
115 assertThat(((BoundedResize) ((ImageOperationChain) imageOperation).getOperations().get(1)).getMaxWidth(), is(100));
116 }
117
118 }