diff --git a/MapView/tests/test_mp.py b/MapView/tests/test_mp.py new file mode 100644 index 0000000..fab62f5 --- /dev/null +++ b/MapView/tests/test_mp.py @@ -0,0 +1,92 @@ +import unittest +import sys +from unittest.mock import Mock + +sys.modules['lineMapLayer'] = Mock() +sys.modules['datasource'] = Mock() +sys.modules['config'] = Mock() + +from MapView.main import get_lat_lon, MapViewApp +from MapView.datasource import Datasource as DataSourceClass + + +# ----------------------- +# get_lat_lon +# ----------------------- +class TestGetLatLon(unittest.TestCase): + + def test_dict(self): + point = {"lat": 50.45, "lon": 30.52} + self.assertEqual(get_lat_lon(point), (50.45, 30.52)) + + def test_tuple(self): + point = (50.45, 30.52) + self.assertEqual(get_lat_lon(point), (50.45, 30.52)) + + def test_list(self): + point = [50.45, 30.52] + self.assertEqual(get_lat_lon(point), (50.45, 30.52)) + + def test_invalid(self): + point = {"lat": None, "lon": 30.52} + self.assertIsNone(get_lat_lon(point)) + + +# ----------------------- +# map_lat_lon_to_marker +# ----------------------- +class TestMapLatLonToMarker(unittest.TestCase): + + def setUp(self): + self.instance = MapViewApp() + + def test_marker_found(self): + marker = Mock() + marker.lat = 30.52 + marker.lon = 50.45 + + self.instance.pothole_markers = [marker] + self.instance.bump_markers = [] + + result = self.instance.map_lat_lon_to_marker(50.45, 30.52) + + self.assertEqual(result, marker) + + def test_marker_not_found(self): + self.instance.pothole_markers = [] + self.instance.bump_markers = [] + + result = self.instance.map_lat_lon_to_marker(50.45, 30.52) + + self.assertIsNone(result) + + +# ----------------------- +# map_lat_lon_to_processed_agent_data +# ----------------------- +class TestMapLatLonToProcessedAgentData(unittest.TestCase): + + def setUp(self): + self.instance = DataSourceClass() + + def test_returns_marker(self): + marker = Mock() + marker.latitude = 30.52 + marker.longitude = 50.45 + + self.instance._active_markers = [marker] + + result = self.instance.map_lat_lon_to_processed_agent_data(50.45, 30.52) + + self.assertIsNotNone(result) + + def test_empty_markers(self): + self.instance._active_markers = [] + + result = self.instance.map_lat_lon_to_processed_agent_data(50.45, 30.52) + + self.assertIsNone(result) + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file