More testing work

Signed-off-by: Taylor Smock <taylor.smock@kaart.com>
pull/1/head
Taylor Smock 2020-04-22 12:45:31 -06:00
rodzic 03681c6f16
commit fca3d1932a
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 625F6A74A3E4311A
3 zmienionych plików z 98 dodań i 1 usunięć

Wyświetl plik

@ -36,7 +36,7 @@ public class DownloadListenerTest {
// Test when MapWithAI layer isn't continuous downloading
ds.addDataSource(new DataSource(bounds, "Test bounds"));
listener.dataSourceChange(null);
Awaitility.await().atLeast(Durations.ONE_HUNDRED_MILLISECONDS).atMost(Durations.ONE_SECOND)
Awaitility.await().pollDelay(Durations.ONE_HUNDRED_MILLISECONDS).atMost(Durations.ONE_SECOND)
.until(() -> layer.getDataSet().getDataSources().isEmpty());
assertTrue(layer.getDataSet().getDataSourceBounds().isEmpty());

Wyświetl plik

@ -1,23 +1,32 @@
// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.mapwithai.frontend;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.lang.reflect.Field;
import javax.swing.JLabel;
import org.awaitility.Awaitility;
import org.awaitility.Durations;
import org.junit.Assume;
import org.junit.Rule;
import org.junit.Test;
import org.openstreetmap.josm.data.Bounds;
import org.openstreetmap.josm.gui.download.DownloadSettings;
import org.openstreetmap.josm.plugins.mapwithai.MapWithAIPlugin;
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIDataUtils;
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIDataUtilsTest;
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIPreferenceHelper;
import org.openstreetmap.josm.plugins.mapwithai.frontend.MapWithAIDownloadReader.MapWithAIDownloadData;
import org.openstreetmap.josm.plugins.mapwithai.testutils.MapWithAITestRules;
import org.openstreetmap.josm.testutils.JOSMTestRules;
import org.openstreetmap.josm.tools.ImageProvider;
public class MapWithAIDownloadReaderTest {
@Rule
@ -53,4 +62,83 @@ public class MapWithAIDownloadReaderTest {
assertTrue(settings.getDownloadBounds().get().toBBox().bboxIsFunctionallyEqual(
MapWithAIDataUtils.getLayer(false).getDataSet().getDataSourceBounds().get(0).toBBox(), 0.0001));
}
@Test
public void testMapWithAIDownloadDataGetData() {
MapWithAIDownloadReader reader = new MapWithAIDownloadReader();
MapWithAIDownloadReader.MapWithAIDownloadPanel panel = new MapWithAIDownloadReader.MapWithAIDownloadPanel(
reader);
MapWithAIDownloadData data = panel.getData();
assertFalse(data.getUrls().isEmpty());
}
/**
* This rememberSettings method is blank, so just make certain nothing gets
* thrown
*/
@Test
public void testMapWithAIDownloadDataRememberSettings() {
MapWithAIDownloadReader reader = new MapWithAIDownloadReader();
MapWithAIDownloadReader.MapWithAIDownloadPanel panel = new MapWithAIDownloadReader.MapWithAIDownloadPanel(
reader);
assertDoesNotThrow(() -> panel.rememberSettings());
}
/**
* This restoreSettings method is blank, so just make certain nothing gets
* thrown
*/
@Test
public void testMapWithAIDownloadDataRestoreSettings() {
MapWithAIDownloadReader reader = new MapWithAIDownloadReader();
MapWithAIDownloadReader.MapWithAIDownloadPanel panel = new MapWithAIDownloadReader.MapWithAIDownloadPanel(
reader);
assertDoesNotThrow(() -> panel.restoreSettings());
}
@Test
public void testMapWithAIDownloadDataSizeCheck()
throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
MapWithAIDownloadReader reader = new MapWithAIDownloadReader();
MapWithAIDownloadReader.MapWithAIDownloadPanel panel = new MapWithAIDownloadReader.MapWithAIDownloadPanel(
reader);
Field sizeCheckField = MapWithAIDownloadReader.MapWithAIDownloadPanel.class.getDeclaredField("sizeCheck");
sizeCheckField.setAccessible(true);
JLabel sizeCheck = (JLabel) sizeCheckField.get(panel);
assertTrue(sizeCheck.getText().isEmpty());
panel.boundingBoxChanged(null);
assertEquals(tr("No area selected yet"), sizeCheck.getText());
panel.boundingBoxChanged(MapWithAIDataUtilsTest.getTestBounds());
assertEquals(tr("Download area ok, size probably acceptable to server"), sizeCheck.getText());
panel.boundingBoxChanged(new Bounds(0, 0, 0.0001, 10));
assertEquals(tr("Download area too large; will probably be rejected by server"), sizeCheck.getText());
panel.boundingBoxChanged(MapWithAIDataUtilsTest.getTestBounds());
assertEquals(tr("Download area ok, size probably acceptable to server"), sizeCheck.getText());
panel.boundingBoxChanged(new Bounds(0, 0, 10, 0.0001));
assertEquals(tr("Download area too large; will probably be rejected by server"), sizeCheck.getText());
panel.boundingBoxChanged(MapWithAIDataUtilsTest.getTestBounds());
assertEquals(tr("Download area ok, size probably acceptable to server"), sizeCheck.getText());
}
@Test
public void testMapWithAIDownloadDataGetSimpleName() {
MapWithAIDownloadReader reader = new MapWithAIDownloadReader();
MapWithAIDownloadReader.MapWithAIDownloadPanel panel = new MapWithAIDownloadReader.MapWithAIDownloadPanel(
reader);
assertFalse(panel.getSimpleName().isEmpty());
}
@Test
public void testMapWithAIDownloadDataGetIcon() {
// Eclipse doesn't have dialogs/mapwithai when running tests
try {
ImageProvider.get("dialogs", "mapwithai");
} catch (Exception e) {
Assume.assumeNoException(e);
}
MapWithAIDownloadReader reader = new MapWithAIDownloadReader();
MapWithAIDownloadReader.MapWithAIDownloadPanel panel = new MapWithAIDownloadReader.MapWithAIDownloadPanel(
reader);
assertNotNull(panel.getIcon());
}
}

Wyświetl plik

@ -6,6 +6,10 @@ import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options
import java.util.logging.Level;
import org.junit.runners.model.InitializationError;
import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
import org.openstreetmap.josm.io.OsmApi;
import org.openstreetmap.josm.io.OsmApiInitializationException;
import org.openstreetmap.josm.io.OsmTransferCanceledException;
import org.openstreetmap.josm.plugins.mapwithai.backend.DataAvailability;
import org.openstreetmap.josm.plugins.mapwithai.backend.GetDataRunnableTest;
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIDataUtils;
@ -58,6 +62,11 @@ public class MapWithAITestRules extends JOSMTestRules {
.replace(Config.getUrls().getJOSMWebsite(), wireMock.baseUrl()));
DataAvailability.setReleaseUrl(wireMock.baseUrl() + "/JOSM_MapWithAI/json/sources.json");
Config.getPref().put("osm-server.url", wireMock.baseUrl());
try {
OsmApi.getOsmApi().initialize(NullProgressMonitor.INSTANCE);
} catch (OsmTransferCanceledException | OsmApiInitializationException e) {
Logging.error(e);
}
}
}