package cgeo.geocaching.connector.oc;
import static org.assertj.core.api.Java6Assertions.assertThat;
import cgeo.geocaching.connector.ConnectorFactory;
import cgeo.geocaching.connector.ConnectorFactoryTest;
import cgeo.geocaching.connector.IConnector;
import java.util.Set;
import junit.framework.TestCase;
public class OCConnectorTest extends TestCase {
/**
* OC.DE used up the 4 digit/character name space and switched over to 5 recently
*/
public static void testCanHandleNew5DigitCodes() {
final IConnector ocConnector = getOcDeConnector();
assertThat(ocConnector.canHandle("OCFFFF")).isTrue();
assertThat(ocConnector.canHandle("OC10000")).isTrue();
}
private static IConnector getOcDeConnector() {
final IConnector ocConnector = ConnectorFactory.getConnector("OCXXX");
assertThat(ocConnector).isNotNull();
assertThat(ocConnector.getHost()).contains(".de");
return ocConnector;
}
public static void testGetGeocodeFromUrlDe() throws Exception {
final IConnector connector = ConnectorFactory.getConnector("OC0028");
assertThat(connector.getGeocodeFromUrl("http://opencaching.de/OC0028")).isEqualTo("OC0028");
assertThat(connector.getGeocodeFromUrl("http://www.opencaching.de/OC0028")).isEqualTo("OC0028");
}
public static void testGetGeocodeFromInternalId() {
final IConnector connector = ConnectorFactory.getConnector("OC0028");
assertThat(connector.getGeocodeFromUrl("http://www.opencaching.de/viewcache.php?cacheid=151223")).isEqualTo("OCBBFE");
}
public static void testGetGeocodeFromUrlUs() throws Exception {
final IConnector connector = ConnectorFactory.getConnector("OU07A0");
assertThat(connector.getGeocodeFromUrl("http://www.opencaching.us/viewcache.php?wp=OU07A0")).isEqualTo("OU07A0");
}
public static void testHandledGeocodes() {
final Set<String> geocodes = ConnectorFactoryTest.getGeocodeSample();
assertThat(getOcDeConnector().handledGeocodes(geocodes)).containsOnly("OC1234", "OC5678");
}
}