@Test public void balloonStyleReadTest() throws IOException, XMLStreamException, URISyntaxException, KmlException { Iterator i; final KmlReader reader = new KmlReader(); reader.setInput(new File(pathToTestFile)); final Kml kmlObjects = reader.read(); reader.dispose(); final Feature document = kmlObjects.getAbstractFeature(); assertTrue(document.getType().equals(KmlModelConstants.TYPE_DOCUMENT)); assertEquals( "BalloonStyle.kml", document.getProperty(KmlModelConstants.ATT_NAME.getName()).getValue()); assertTrue((Boolean) document.getProperty(KmlModelConstants.ATT_OPEN.getName()).getValue()); assertEquals(1, document.getProperties(KmlModelConstants.ATT_STYLE_SELECTOR.getName()).size()); i = document.getProperties(KmlModelConstants.ATT_STYLE_SELECTOR.getName()).iterator(); if (i.hasNext()) { Object styleSelector = ((Property) i.next()).getValue(); assertTrue(styleSelector instanceof Style); final Style style = (Style) styleSelector; assertEquals("exampleBalloonStyle", style.getIdAttributes().getId()); final BalloonStyle balloonStyle = style.getBalloonStyle(); assertEquals(new Color(187, 255, 255, 255), balloonStyle.getBgColor()); final Cdata text = new DefaultCdata( "\n <b><font color=\"#CC0000\" size=\"+3\">$[name]</font></b>\n" + " <br/><br/>\n" + " <font face=\"Courier\">$[description]</font>\n" + " <br/><br/>\n" + " Extra text that will appear in the description balloon\n" + " <br/><br/>\n" + " $[geDirections]\n" + " "); assertEquals(text, balloonStyle.getText()); } assertEquals( 1, document.getProperties(KmlModelConstants.ATT_DOCUMENT_FEATURES.getName()).size()); i = document.getProperties(KmlModelConstants.ATT_DOCUMENT_FEATURES.getName()).iterator(); if (i.hasNext()) { final Object object = i.next(); assertTrue(object instanceof Feature); Feature placemark = (Feature) object; assertTrue(placemark.getType().equals(KmlModelConstants.TYPE_PLACEMARK)); assertEquals( "BalloonStyle", placemark.getProperty(KmlModelConstants.ATT_NAME.getName()).getValue()); assertEquals( "An example of BalloonStyle", placemark.getProperty(KmlModelConstants.ATT_DESCRIPTION.getName()).getValue()); assertEquals( new URI("#exampleBalloonStyle"), placemark.getProperty(KmlModelConstants.ATT_STYLE_URL.getName()).getValue()); assertTrue( placemark.getProperty(KmlModelConstants.ATT_PLACEMARK_GEOMETRY.getName()).getValue() instanceof Point); final Point point = (Point) placemark.getProperty(KmlModelConstants.ATT_PLACEMARK_GEOMETRY.getName()).getValue(); final CoordinateSequence coordinates = point.getCoordinateSequence(); assertEquals(1, coordinates.size()); final Coordinate coordinate = coordinates.getCoordinate(0); assertEquals(-122.370533, coordinate.x, DELTA); assertEquals(37.823842, coordinate.y, DELTA); assertEquals(0, coordinate.z, DELTA); } }