kopia lustrzana https://github.com/JOSM/MapWithAI
Fix broken tests
This was caused by changed behavior in various classes. Some were broken due to changing facts (for example, Canada now has highways, as does most of the rest of the world). Signed-off-by: Taylor Smock <taylor.smock@kaart.com>pull/1/head
rodzic
48475c7c14
commit
16fcc489de
|
@ -168,10 +168,11 @@ public final class MapWithAIDataUtils {
|
||||||
if ((realBBoxes.size() < TOO_MANY_BBOXES) || confirmBigDownload(realBBoxes)) {
|
if ((realBBoxes.size() < TOO_MANY_BBOXES) || confirmBigDownload(realBBoxes)) {
|
||||||
final PleaseWaitProgressMonitor monitor = new PleaseWaitProgressMonitor();
|
final PleaseWaitProgressMonitor monitor = new PleaseWaitProgressMonitor();
|
||||||
monitor.beginTask(tr("Downloading {0} Data", MapWithAIPlugin.NAME), realBounds.size());
|
monitor.beginTask(tr("Downloading {0} Data", MapWithAIPlugin.NAME), realBounds.size());
|
||||||
realBounds.parallelStream().forEach(bound -> MapWithAIPreferenceHelper.getMapWithAIUrl()
|
realBounds.parallelStream()
|
||||||
.parallelStream().filter(i -> i.getUrl() != null && !i.getUrl().trim().isEmpty()).forEach(i -> {
|
.forEach(bound -> new ArrayList<>(MapWithAIPreferenceHelper.getMapWithAIUrl()).parallelStream()
|
||||||
BoundingBoxMapWithAIDownloader downloader = new BoundingBoxMapWithAIDownloader(bound, i,
|
.filter(i -> i.getUrl() != null && !i.getUrl().trim().isEmpty()).forEach(i -> {
|
||||||
DetectTaskingManagerUtils.hasTaskingManagerLayer());
|
BoundingBoxMapWithAIDownloader downloader = new BoundingBoxMapWithAIDownloader(
|
||||||
|
bound, i, DetectTaskingManagerUtils.hasTaskingManagerLayer());
|
||||||
try {
|
try {
|
||||||
DataSet ds = downloader.parseOsm(monitor.createSubTaskMonitor(1, false));
|
DataSet ds = downloader.parseOsm(monitor.createSubTaskMonitor(1, false));
|
||||||
synchronized (MapWithAIDataUtils.class) {
|
synchronized (MapWithAIDataUtils.class) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ import org.openstreetmap.josm.tools.Utils;
|
||||||
public class MapWithAILayerInfo {
|
public class MapWithAILayerInfo {
|
||||||
|
|
||||||
/** List of all usable layers */
|
/** List of all usable layers */
|
||||||
private final List<MapWithAIInfo> layers = new ArrayList<>();
|
private final List<MapWithAIInfo> layers = Collections.synchronizedList(new ArrayList<>());
|
||||||
/** List of layer ids of all usable layers */
|
/** List of layer ids of all usable layers */
|
||||||
private final Map<String, MapWithAIInfo> layerIds = new HashMap<>();
|
private final Map<String, MapWithAIInfo> layerIds = new HashMap<>();
|
||||||
/** List of all available default layers */
|
/** List of all available default layers */
|
||||||
|
@ -378,11 +378,13 @@ public class MapWithAILayerInfo {
|
||||||
/**
|
/**
|
||||||
* Save the list of imagery entries to preferences.
|
* Save the list of imagery entries to preferences.
|
||||||
*/
|
*/
|
||||||
public void save() {
|
public synchronized void save() {
|
||||||
List<MapWithAIPreferenceEntry> entries = new ArrayList<>();
|
List<MapWithAIPreferenceEntry> entries = new ArrayList<>();
|
||||||
|
synchronized (layers) {
|
||||||
for (MapWithAIInfo info : layers) {
|
for (MapWithAIInfo info : layers) {
|
||||||
entries.add(new MapWithAIPreferenceEntry(info));
|
entries.add(new MapWithAIPreferenceEntry(info));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
StructUtils.putListOfStructs(Config.getPref(), CONFIG_PREFIX + "entries", entries,
|
StructUtils.putListOfStructs(Config.getPref(), CONFIG_PREFIX + "entries", entries,
|
||||||
MapWithAIPreferenceEntry.class);
|
MapWithAIPreferenceEntry.class);
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,10 +71,10 @@ public class MapWithAIAvailabilityTest {
|
||||||
"The US should have highway data");
|
"The US should have highway data");
|
||||||
assertTrue(DataAvailability.getDataTypes(new LatLon(40, -100)).getOrDefault("building", false),
|
assertTrue(DataAvailability.getDataTypes(new LatLon(40, -100)).getOrDefault("building", false),
|
||||||
"The US should have building data");
|
"The US should have building data");
|
||||||
assertFalse(DataAvailability.getDataTypes(new LatLon(45.424722, -75.695)).getOrDefault("highway", false),
|
assertFalse(DataAvailability.getDataTypes(new LatLon(71.67, -42.85)).getOrDefault("highway", false),
|
||||||
"Canada does not yet have highway data");
|
"Denmark should not have highway data");
|
||||||
assertTrue(DataAvailability.getDataTypes(new LatLon(45.424722, -75.695)).getOrDefault("building", false),
|
assertFalse(DataAvailability.getDataTypes(new LatLon(71.67, -42.85)).getOrDefault("building", false),
|
||||||
"Canada does have building data");
|
"Denmark does not have building data");
|
||||||
assertTrue(DataAvailability.getDataTypes(new LatLon(19.433333, -99.133333)).getOrDefault("highway", false),
|
assertTrue(DataAvailability.getDataTypes(new LatLon(19.433333, -99.133333)).getOrDefault("highway", false),
|
||||||
"Mexico has highway data");
|
"Mexico has highway data");
|
||||||
assertFalse(DataAvailability.getDataTypes(new LatLon(19.433333, -99.133333)).getOrDefault("building", false),
|
assertFalse(DataAvailability.getDataTypes(new LatLon(19.433333, -99.133333)).getOrDefault("building", false),
|
||||||
|
|
|
@ -19,34 +19,27 @@ import org.openstreetmap.josm.gui.download.DownloadSettings;
|
||||||
import org.openstreetmap.josm.plugins.mapwithai.MapWithAIPlugin;
|
import org.openstreetmap.josm.plugins.mapwithai.MapWithAIPlugin;
|
||||||
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIDataUtils;
|
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIDataUtils;
|
||||||
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIPreferenceHelper;
|
import org.openstreetmap.josm.plugins.mapwithai.backend.MapWithAIPreferenceHelper;
|
||||||
import org.openstreetmap.josm.plugins.mapwithai.data.mapwithai.MapWithAILayerInfo;
|
import org.openstreetmap.josm.plugins.mapwithai.gui.preferences.MapWithAILayerInfoTest;
|
||||||
import org.openstreetmap.josm.testutils.JOSMTestRules;
|
import org.openstreetmap.josm.testutils.JOSMTestRules;
|
||||||
|
|
||||||
import com.github.tomakehurst.wiremock.WireMockServer;
|
import com.github.tomakehurst.wiremock.WireMockServer;
|
||||||
|
|
||||||
public class MapWithAIDownloadReaderTest {
|
public class MapWithAIDownloadReaderTest {
|
||||||
@Rule
|
@Rule
|
||||||
public JOSMTestRules rules = new JOSMTestRules().projection();
|
public JOSMTestRules rules = new JOSMTestRules().projection().territories();
|
||||||
|
|
||||||
WireMockServer wireMock = new WireMockServer(options().usingFilesUnderDirectory("test/resources/wiremock"));
|
WireMockServer wireMock = new WireMockServer(options().usingFilesUnderDirectory("test/resources/wiremock"));
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
wireMock.start();
|
wireMock.start();
|
||||||
MapWithAILayerInfo.instance.getLayers().forEach(i -> i.setUrl(getDefaultMapWithAIAPIForTest(i.getUrl())));
|
MapWithAILayerInfoTest.setupMapWithAILayerInfo(wireMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() {
|
public void tearDown() {
|
||||||
wireMock.stop();
|
wireMock.stop();
|
||||||
}
|
MapWithAILayerInfoTest.resetMapWithAILayerInfo();
|
||||||
|
|
||||||
private String getDefaultMapWithAIAPIForTest(String url) {
|
|
||||||
return getDefaultMapWithAIAPIForTest(url, "https://www.mapwith.ai");
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getDefaultMapWithAIAPIForTest(String url, String wireMockReplace) {
|
|
||||||
return url.replace(wireMockReplace, wireMock.baseUrl());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Ładowanie…
Reference in New Issue