3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.strategy
.parser
.location
;
12 import org
.apache
.log4j
.Logger
;
13 import org
.junit
.Assert
;
14 import org
.junit
.Before
;
15 import org
.junit
.BeforeClass
;
16 import org
.junit
.Test
;
18 import eu
.etaxonomy
.cdm
.strategy
.parser
.location
.CoordinateConverter
;
19 import eu
.etaxonomy
.cdm
.strategy
.parser
.location
.CoordinateConverter
.ConversionResults
;
26 public class CoordinateConverterTest
{
27 private static final Logger logger
= Logger
.getLogger(CoordinateConverterTest
.class);
29 private CoordinateConverter coordinateConverter
;
32 * @throws java.lang.Exception
35 public static void setUpBeforeClass() throws Exception
{
39 * @throws java.lang.Exception
42 public void setUp() throws Exception
{
43 coordinateConverter
= new CoordinateConverter();
46 // ************************ TESTS ********************************************** /
49 * Test method for {@link eu.etaxonomy.cdm.strategy.parser.location.CoordinateConverter#CoordinateConverter()}.
52 public void testCoordinateConverter() {
53 Assert
.assertNotNull("converter should not be null",coordinateConverter
);
57 * Test method for {@link eu.etaxonomy.cdm.strategy.parser.location.CoordinateConverter#tryConvert(java.lang.String)}.
60 public void testTryConvert() {
61 ConversionResults conversionResults
= coordinateConverter
.tryConvert("35\u00B034'20\"S");
62 Assert
.assertTrue(conversionResults
.conversionComments
, conversionResults
.patternRecognised
);
63 Assert
.assertTrue("Southern must be negative", conversionResults
.convertedCoord
< 0);
64 Assert
.assertFalse("Southern must be latitude", conversionResults
.isLongitude
);
66 conversionResults
= coordinateConverter
.tryConvert("35\u00BA34.744");
67 Assert
.assertTrue(conversionResults
.conversionComments
, conversionResults
.patternRecognised
);
68 Assert
.assertNull("Longitude must be undefined", conversionResults
.isLongitude
);
70 conversionResults
= coordinateConverter
.tryConvert("95\u00B034.744");
71 Assert
.assertTrue("Longitude must be defined", conversionResults
.isLongitude
);
74 conversionResults
= coordinateConverter
.tryConvert("-35\u00B034'55.67S");
75 Assert
.assertTrue(conversionResults
.conversionComments
, conversionResults
.patternRecognised
);
77 conversionResults
= coordinateConverter
.tryConvert("35\u00B011'34.744SN");
78 Assert
.assertTrue(conversionResults
.conversionComments
, conversionResults
.patternRecognised
);
80 conversionResults
= coordinateConverter
.tryConvert("35\u00B011'34.744SW");
81 Assert
.assertTrue("Western must be longitude", conversionResults
.isLongitude
);
83 conversionResults
= coordinateConverter
.tryConvert("35D11M34.744S");
84 Assert
.assertNull("isLongitude must be undefined. S stands for second.", conversionResults
.isLongitude
);
90 * Test method for {@link eu.etaxonomy.cdm.strategy.parser.location.CoordinateConverter#addCustomPattern(eu.etaxonomy.cdm.strategy.parser.location.CoordinateConverter.CustomPatternIn)}.
93 public void testAddCustomPattern() {
94 logger
.warn("testAddCustomPattern not yet implemented"); // TODO