aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/cgeo/geocaching/connector/ConnectorFactoryTest.java
blob: 292227213d14ad53bbb9c0c502fdf5e81e60b2c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package cgeo.geocaching.connector;

import cgeo.geocaching.connector.gc.GCConnector;
import cgeo.geocaching.connector.oc.OCConnector;
import cgeo.geocaching.test.AbstractResourceInstrumentationTestCase;
import cgeo.geocaching.test.mock.GC1ZXX2;

public class ConnectorFactoryTest extends AbstractResourceInstrumentationTestCase {

    public static void testGetConnectors() {
        final IConnector[] connectors = ConnectorFactory.getConnectors();
        assertNotNull(connectors);
        assertTrue(connectors.length > 0); // unknown connector must exist
    }

    public static void testCanHandle() {
        assertFalse(ConnectorFactory.canHandle(""));
        assertTrue(ConnectorFactory.canHandle("GC12345"));
        assertTrue(ConnectorFactory.canHandle("some string")); // using unknown connector
        assertFalse(ConnectorFactory.canHandle("[/start with special char"));
    }

    public static void testGeocodeOpenCaching() {
        assertTrue(ConnectorFactory.getConnector("OZ12345") instanceof OCConnector); // opencaching CZ
        assertTrue(ConnectorFactory.getConnector("OC12345") instanceof OCConnector); // opencaching DE
        assertTrue(ConnectorFactory.getConnector("OU12345") instanceof OCConnector); // opencaching US
        assertTrue(ConnectorFactory.getConnector("OK12345") instanceof OCConnector); // opencaching UK
        assertTrue(ConnectorFactory.getConnector("OJ12345") instanceof OCConnector); // opencaching JP
        assertTrue(ConnectorFactory.getConnector("OS12345") instanceof OCConnector); // opencaching NO
        assertTrue(ConnectorFactory.getConnector("OB12345") instanceof OCConnector); // opencaching NL
        assertTrue(ConnectorFactory.getConnector("OP12345") instanceof OCConnector); // opencaching PL
    }

    public static void testGeocodeInvalidFormat() throws Exception {
        // all codes are invalid
        assertTrue(ConnectorFactory.getConnector("GC") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("OC") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("OX") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("GC 1234") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("OC 1234") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("OX 1234") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("GC-1234") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("OC-1234") instanceof UnknownConnector);
        assertTrue(ConnectorFactory.getConnector("OX-1234") instanceof UnknownConnector);
    }

    public static void testGetConnectorCgCache() {
        assertEquals(GCConnector.getInstance(), ConnectorFactory.getConnector(new GC1ZXX2()));
    }

    public static void testGetConnectorString() {
        final IConnector connector = ConnectorFactory.getConnector("GC12345");
        assertNotNull(connector);
        assertEquals(GCConnector.getInstance().getName(), connector.getName());
    }

}