Skip to content

Commit c4f3227

Browse files
committed
Adds Tests To Point and Image SocketPreviewView
1 parent 59926fa commit c4f3227

File tree

6 files changed

+152
-5
lines changed

6 files changed

+152
-5
lines changed

core/src/test/java/edu/wpi/grip/util/ImageWithData.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package edu.wpi.grip.util;
22

33

4+
import edu.wpi.grip.core.util.ImageLoadingUtility;
45
import org.bytedeco.javacpp.opencv_core.Mat;
56

67
import java.io.File;
8+
import java.io.IOException;
9+
import java.net.URLDecoder;
10+
import java.nio.file.Paths;
711

812
import static org.junit.Assert.assertEquals;
913

@@ -18,6 +22,16 @@ protected ImageWithData(File file, int rows, int cols) {
1822
this.cols = cols;
1923
}
2024

25+
public Mat createMat() {
26+
try {
27+
final Mat data = new Mat();
28+
ImageLoadingUtility.loadImage(URLDecoder.decode(Paths.get(file.toURI()).toString()),data);
29+
return data;
30+
} catch (IOException e) {
31+
throw new AssertionError("Can not load image", e);
32+
}
33+
}
34+
2135
public void assertSameImage(final Mat image) {
2236
// Check that the image that is read in is 2 dimensional
2337
assertEquals("Matrix from loaded image did not have expected number of rows.", this.rows, image.rows());

ui/src/main/java/edu/wpi/grip/ui/preview/PointSizeSocketPreviewView.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616
/**
1717
* A {@link SocketPreviewView} for OpenCV points and sizes
1818
*/
19-
public class PointSizeSocketPreviewView extends SocketPreviewView<IntPointer> {
19+
public class PointSizeSocketPreviewView<T extends IntPointer> extends SocketPreviewView<T> {
2020

2121
private final TextField x, y;
22-
private GRIPPlatform platform;
22+
private final GRIPPlatform platform;
2323

2424
/**
2525
* @param socket An output socket to preview
2626
*/
27-
PointSizeSocketPreviewView(GRIPPlatform platform, OutputSocket<IntPointer> socket) {
27+
PointSizeSocketPreviewView(GRIPPlatform platform, OutputSocket<T> socket) {
2828
super(socket);
2929
this.platform = platform;
3030

ui/src/main/java/edu/wpi/grip/ui/preview/SocketPreviewViewFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import edu.wpi.grip.core.operations.composite.ContoursReport;
99
import edu.wpi.grip.core.operations.composite.LinesReport;
1010
import edu.wpi.grip.ui.util.GRIPPlatform;
11-
import org.bytedeco.javacpp.IntPointer;
1211

1312
import static org.bytedeco.javacpp.opencv_core.*;
1413

@@ -39,7 +38,7 @@ public <T> SocketPreviewView<T> create(OutputSocket<T> socket) {
3938
if (socket.getSocketHint().getType() == Mat.class) {
4039
previewView = (SocketPreviewView) new ImageSocketPreviewView(platform, (OutputSocket<Mat>) socket);
4140
} else if (socket.getSocketHint().getType() == Point.class || socket.getSocketHint().getType() == Size.class) {
42-
previewView = (SocketPreviewView) new PointSizeSocketPreviewView(platform, (OutputSocket<IntPointer>) socket);
41+
previewView = (SocketPreviewView) new PointSizeSocketPreviewView(platform, socket);
4342
} else if (socket.getSocketHint().getType() == ContoursReport.class) {
4443
previewView = (SocketPreviewView) new ContoursSocketPreviewView(platform, (OutputSocket<ContoursReport>) socket);
4544
} else if (socket.getSocketHint().getType() == LinesReport.class) {
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package edu.wpi.grip.ui.preview;
2+
3+
import com.google.common.eventbus.EventBus;
4+
import edu.wpi.grip.core.OutputSocket;
5+
import edu.wpi.grip.core.SocketHint;
6+
import edu.wpi.grip.ui.util.MockGripPlatform;
7+
import edu.wpi.grip.util.Files;
8+
import javafx.scene.Scene;
9+
import javafx.stage.Stage;
10+
import org.bytedeco.javacpp.opencv_core.Mat;
11+
import org.junit.Test;
12+
import org.testfx.framework.junit.ApplicationTest;
13+
import org.testfx.matcher.base.NodeMatchers;
14+
import org.testfx.util.WaitForAsyncUtils;
15+
16+
import static org.testfx.api.FxAssert.verifyThat;
17+
18+
public class ImageSocketPreviewViewTest extends ApplicationTest {
19+
private static final String identifier = "image";
20+
@Override
21+
public void start(Stage stage) {
22+
final ImageSocketPreviewView imageSocketPreviewView =
23+
new ImageSocketPreviewView(new MockGripPlatform(new EventBus()),
24+
new OutputSocket<>(
25+
new EventBus(), new SocketHint.Builder<>(Mat.class)
26+
.identifier(identifier)
27+
.initialValueSupplier(Files.gompeiJpegFile::createMat)
28+
.build()));
29+
final Scene scene = new Scene(imageSocketPreviewView);
30+
stage.setScene(scene);
31+
stage.show();
32+
}
33+
34+
@Test
35+
@SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert")
36+
public void testIfImageRenders() {
37+
WaitForAsyncUtils.waitForFxEvents();
38+
verifyThat(identifier, NodeMatchers.isVisible());
39+
}
40+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package edu.wpi.grip.ui.preview;
2+
3+
import com.google.common.eventbus.EventBus;
4+
import edu.wpi.grip.core.OutputSocket;
5+
import edu.wpi.grip.core.SocketHint;
6+
import edu.wpi.grip.ui.util.MockGripPlatform;
7+
import javafx.scene.Scene;
8+
import javafx.stage.Stage;
9+
import org.bytedeco.javacpp.opencv_core.Point;
10+
import org.bytedeco.javacpp.opencv_core.Size;
11+
import org.junit.Test;
12+
import org.junit.experimental.runners.Enclosed;
13+
import org.junit.runner.RunWith;
14+
import org.testfx.framework.junit.ApplicationTest;
15+
import org.testfx.matcher.base.NodeMatchers;
16+
import org.testfx.util.WaitForAsyncUtils;
17+
18+
import static org.testfx.api.FxAssert.verifyThat;
19+
20+
@RunWith(Enclosed.class)
21+
public class PointSizeSocketPreviewViewTest {
22+
23+
public static class PointSocketPreviewViewTest extends ApplicationTest {
24+
private static final String identifier = "testPoint";
25+
private static final int value1 = 1, value2 = 2;
26+
@Override
27+
public void start(Stage stage) {
28+
final OutputSocket<Point> pointOutputSocket =
29+
new OutputSocket<>(new EventBus(),
30+
new SocketHint.Builder<>(Point.class)
31+
.identifier(identifier)
32+
.initialValueSupplier(() -> new Point(value1, value2))
33+
.build());
34+
final PointSizeSocketPreviewView<Point> point =
35+
new PointSizeSocketPreviewView<>(new MockGripPlatform(new EventBus()), pointOutputSocket);
36+
final Scene scene = new Scene(point);
37+
stage.setScene(scene);
38+
stage.show();
39+
}
40+
41+
@Test
42+
@SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert")
43+
public void testForExpectedValues() {
44+
WaitForAsyncUtils.waitForFxEvents();
45+
verifyThat(identifier, NodeMatchers.isVisible());
46+
verifyThat(Integer.toString(value1), NodeMatchers.isVisible());
47+
verifyThat(Integer.toString(value2), NodeMatchers.isVisible());
48+
}
49+
}
50+
51+
public static class SizeSocketPreviewViewTest extends ApplicationTest {
52+
private static final String identifier = "testSize";
53+
private static final int value1 = 1, value2 = 2;
54+
55+
@Override
56+
public void start(Stage stage) {
57+
final OutputSocket<Size> sizeOutputSocket =
58+
new OutputSocket<>(new EventBus(),
59+
new SocketHint.Builder<>(Size.class)
60+
.identifier(identifier)
61+
.initialValueSupplier(() -> new Size(value1, value2))
62+
.build());
63+
64+
final PointSizeSocketPreviewView<Size> size =
65+
new PointSizeSocketPreviewView<>(new MockGripPlatform(new EventBus()), sizeOutputSocket);
66+
final Scene scene = new Scene(size);
67+
stage.setScene(scene);
68+
stage.show();
69+
}
70+
71+
@Test
72+
@SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert")
73+
public void testForExpectedValues() {
74+
WaitForAsyncUtils.waitForFxEvents();
75+
verifyThat(identifier, NodeMatchers.isVisible());
76+
verifyThat(Integer.toString(value1), NodeMatchers.isVisible());
77+
verifyThat(Integer.toString(value2), NodeMatchers.isVisible());
78+
}
79+
}
80+
81+
82+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package edu.wpi.grip.ui.util;
2+
3+
4+
import com.google.common.eventbus.EventBus;
5+
6+
import java.util.logging.Logger;
7+
8+
public class MockGripPlatform extends GRIPPlatform {
9+
public MockGripPlatform(EventBus eventBus) {
10+
super(eventBus, Logger.getLogger(MockGripPlatform.class.getName()));
11+
}
12+
}

0 commit comments

Comments
 (0)