package cgeo.geocaching.export; import cgeo.geocaching.Geocache; import cgeo.geocaching.files.ParserException; import cgeo.geocaching.test.AbstractResourceInstrumentationTestCase; import cgeo.geocaching.test.R; import java.io.IOException; import java.io.StringWriter; import java.util.Collections; import java.util.concurrent.atomic.AtomicReference; public class GpxSerializerTest extends AbstractResourceInstrumentationTestCase { public static void testWriteEmptyGPX() throws Exception { final StringWriter writer = new StringWriter(); new GpxSerializer().writeGPX(Collections. emptyList(), writer, null); assertEquals("", writer.getBuffer().toString()); } public void testProgressReporting() throws IOException, ParserException { final AtomicReference importedCount = new AtomicReference(0); final StringWriter writer = new StringWriter(); Geocache cache = loadCacheFromResource(R.raw.gc1bkp3_gpx101); assertNotNull(cache); new GpxSerializer().writeGPX(Collections.singletonList("GC1BKP3"), writer, new GpxSerializer.ProgressListener() { @Override public void publishProgress(int countExported) { importedCount.set(countExported); } }); assertEquals("Progress listener not called", 1, importedCount.get().intValue()); } }