• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.geojson;
2 
3 import org.junit.Assert;
4 import org.junit.Test;
5 import org.junit.runner.RunWith;
6 import org.junit.runners.Parameterized;
7 
8 import java.util.Arrays;
9 import java.util.Collection;
10 
11 @RunWith(Parameterized.class)
12 public class GeoJsonObjectVisitorTest {
13 
14 	private final GeoJsonObject geoJsonObject;
15 	private GeoJsonObjectVisitor<GeoJsonObject> instance = new GeoJsonObjectVisitor<GeoJsonObject>() {
16 
17 		@Override
18 		public GeoJsonObject visit(GeometryCollection geoJsonObject) {
19 			Assert.assertEquals(GeometryCollection.class, geoJsonObject.getClass());
20 			return geoJsonObject;
21 		}
22 
23 		@Override
24 		public GeoJsonObject visit(FeatureCollection geoJsonObject) {
25 			Assert.assertEquals(FeatureCollection.class, geoJsonObject.getClass());
26 			return geoJsonObject;
27 		}
28 
29 		@Override
30 		public GeoJsonObject visit(Point geoJsonObject) {
31 			Assert.assertEquals(Point.class, geoJsonObject.getClass());
32 			return geoJsonObject;
33 		}
34 
35 		@Override
36 		public GeoJsonObject visit(Feature geoJsonObject) {
37 			Assert.assertEquals(Feature.class, geoJsonObject.getClass());
38 			return geoJsonObject;
39 		}
40 
41 		@Override
42 		public GeoJsonObject visit(MultiLineString geoJsonObject) {
43 			Assert.assertEquals(MultiLineString.class, geoJsonObject.getClass());
44 			return geoJsonObject;
45 		}
46 
47 		@Override
48 		public GeoJsonObject visit(Polygon geoJsonObject) {
49 			Assert.assertEquals(Polygon.class, geoJsonObject.getClass());
50 			return geoJsonObject;
51 		}
52 
53 		@Override
54 		public GeoJsonObject visit(MultiPolygon geoJsonObject) {
55 			Assert.assertEquals(MultiPolygon.class, geoJsonObject.getClass());
56 			return geoJsonObject;
57 		}
58 
59 		@Override
60 		public GeoJsonObject visit(MultiPoint geoJsonObject) {
61 			Assert.assertEquals(MultiPoint.class, geoJsonObject.getClass());
62 			return geoJsonObject;
63 		}
64 
65 		@Override
66 		public GeoJsonObject visit(LineString geoJsonObject) {
67 			Assert.assertEquals(LineString.class, geoJsonObject.getClass());
68 			return geoJsonObject;
69 		}
70 	};
GeoJsonObjectVisitorTest(GeoJsonObject geoJsonObject)71 	public GeoJsonObjectVisitorTest(GeoJsonObject geoJsonObject) {
72 		this.geoJsonObject = geoJsonObject;
73 	}
74 
75 	@Parameterized.Parameters
data()76 	public static Collection<Object[]> data() {
77 		return Arrays.asList(new Object[][] { { new GeometryCollection() }, { new FeatureCollection() },
78 				{ new Point(12D, 13D) }, { new Feature() },
79 				{ new MultiLineString(Arrays.asList(new LngLatAlt(12D, 13D))) }, { new Polygon() },
80 				{ new MultiPolygon() }, { new MultiPoint() }, { new LineString() } });
81 	}
82 
83 	@Test
should_visit_right_class()84 	public void should_visit_right_class() {
85 		// When
86 		GeoJsonObject result = geoJsonObject.accept(this.instance);
87 		// Then
88 		Assert.assertEquals(geoJsonObject, result);
89 	}
90 
91 	@Test
itShouldAdapter()92 	public void itShouldAdapter() throws Exception {
93 		Assert.assertNull(geoJsonObject.accept(new GeoJsonObjectVisitor.Adapter<Void>()));
94 	}
95 }