1414
1515package com.google.maps.android.compose
1616
17+ import android.content.Context
1718import androidx.compose.foundation.layout.Box
1819import androidx.compose.foundation.layout.fillMaxSize
1920import androidx.compose.material.Text
@@ -25,9 +26,14 @@ import androidx.compose.ui.test.junit4.createComposeRule
2526import androidx.compose.ui.test.onNodeWithTag
2627import androidx.compose.ui.test.onNodeWithText
2728import androidx.compose.ui.test.performClick
29+ import androidx.test.platform.app.InstrumentationRegistry
2830import com.google.android.gms.maps.model.CameraPosition
2931import com.google.android.gms.maps.model.LatLng
30- import org.junit.Assert.*
32+ import com.google.common.truth.Truth.assertThat
33+ import com.google.maps.android.compose.LatLngSubject.Companion.assertThat
34+ import com.google.maps.android.compose.internal.GoogleMapsInitializer
35+ import com.google.maps.android.compose.internal.InitializationState
36+ import kotlinx.coroutines.runBlocking
3137import org.junit.Before
3238import org.junit.Rule
3339import org.junit.Test
@@ -46,6 +52,15 @@ class GoogleMapViewTests {
4652 private fun initMap (content : @Composable () -> Unit = {}) {
4753 check(hasValidApiKey) { " Maps API key not specified" }
4854 val countDownLatch = CountDownLatch (1 )
55+
56+ val appContext: Context = InstrumentationRegistry .getInstrumentation().targetContext
57+
58+ runBlocking {
59+ GoogleMapsInitializer .initialize(appContext)
60+ }
61+
62+ assertThat(GoogleMapsInitializer .state.value).isEqualTo(InitializationState .SUCCESS )
63+
4964 composeTestRule.setContent {
5065 GoogleMapView (
5166 modifier = Modifier .fillMaxSize(),
@@ -59,7 +74,7 @@ class GoogleMapViewTests {
5974 }
6075 }
6176 val mapLoaded = countDownLatch.await(30 , TimeUnit .SECONDS )
62- assertTrue( " Map loaded " , mapLoaded)
77+ assertThat( mapLoaded).isTrue( )
6378 }
6479
6580 @Before
@@ -75,32 +90,32 @@ class GoogleMapViewTests {
7590 @Test
7691 fun testStartingCameraPosition () {
7792 initMap()
78- startingPosition.assertEquals (cameraPositionState.position.target)
93+ assertThat (cameraPositionState.position.target).isEqualTo(startingPosition )
7994 }
8095
8196 @Test
8297 fun testRightInitialColorScheme () {
8398 initMap()
84- mapColorScheme.assertEquals (ComposeMapColorScheme .FOLLOW_SYSTEM )
99+ assertThat( mapColorScheme).isEqualTo (ComposeMapColorScheme .FOLLOW_SYSTEM )
85100 }
86101
87102 @Test
88- fun testRighColorSchemeAfterChangingIt () {
103+ fun testRightColorSchemeAfterChangingIt () {
89104 mapColorScheme = ComposeMapColorScheme .DARK
90105 initMap()
91- mapColorScheme.assertEquals (ComposeMapColorScheme .DARK )
106+ assertThat( mapColorScheme).isEqualTo (ComposeMapColorScheme .DARK )
92107 }
93108
94109 @Test
95110 fun testCameraReportsMoving () {
96111 initMap()
97- assertEquals( CameraMoveStartedReason . NO_MOVEMENT_YET , cameraPositionState.cameraMoveStartedReason)
112+ assertThat( cameraPositionState.cameraMoveStartedReason).isEqualTo( CameraMoveStartedReason . NO_MOVEMENT_YET )
98113 zoom(shouldAnimate = true , zoomIn = true ) {
99114 composeTestRule.waitUntil(timeout2) {
100115 cameraPositionState.isMoving
101116 }
102- assertTrue (cameraPositionState.isMoving)
103- assertEquals( CameraMoveStartedReason . DEVELOPER_ANIMATION , cameraPositionState.cameraMoveStartedReason)
117+ assertThat (cameraPositionState.isMoving).isTrue( )
118+ assertThat( cameraPositionState.cameraMoveStartedReason).isEqualTo( CameraMoveStartedReason . DEVELOPER_ANIMATION )
104119 }
105120 }
106121
@@ -114,7 +129,7 @@ class GoogleMapViewTests {
114129 composeTestRule.waitUntil(timeout5) {
115130 ! cameraPositionState.isMoving
116131 }
117- assertFalse (cameraPositionState.isMoving)
132+ assertThat (cameraPositionState.isMoving).isFalse( )
118133 }
119134 }
120135
@@ -128,11 +143,7 @@ class GoogleMapViewTests {
128143 composeTestRule.waitUntil(timeout3) {
129144 ! cameraPositionState.isMoving
130145 }
131- assertEquals(
132- startingZoom + 1f ,
133- cameraPositionState.position.zoom,
134- assertRoundingError.toFloat()
135- )
146+ assertThat(cameraPositionState.position.zoom).isWithin(assertRoundingError.toFloat()).of(startingZoom + 1f )
136147 }
137148 }
138149
@@ -146,11 +157,7 @@ class GoogleMapViewTests {
146157 composeTestRule.waitUntil(timeout3) {
147158 ! cameraPositionState.isMoving
148159 }
149- assertEquals(
150- startingZoom + 1f ,
151- cameraPositionState.position.zoom,
152- assertRoundingError.toFloat()
153- )
160+ assertThat(cameraPositionState.position.zoom).isWithin(assertRoundingError.toFloat()).of(startingZoom + 1f )
154161 }
155162 }
156163
@@ -164,11 +171,7 @@ class GoogleMapViewTests {
164171 composeTestRule.waitUntil(timeout3) {
165172 ! cameraPositionState.isMoving
166173 }
167- assertEquals(
168- startingZoom - 1f ,
169- cameraPositionState.position.zoom,
170- assertRoundingError.toFloat()
171- )
174+ assertThat(cameraPositionState.position.zoom).isWithin(assertRoundingError.toFloat()).of(startingZoom - 1f )
172175 }
173176 }
174177
@@ -182,11 +185,7 @@ class GoogleMapViewTests {
182185 composeTestRule.waitUntil(timeout3) {
183186 ! cameraPositionState.isMoving
184187 }
185- assertEquals(
186- startingZoom - 1f ,
187- cameraPositionState.position.zoom,
188- assertRoundingError.toFloat()
189- )
188+ assertThat(cameraPositionState.position.zoom).isWithin(assertRoundingError.toFloat()).of(startingZoom - 1f )
190189 }
191190 }
192191
@@ -195,10 +194,10 @@ class GoogleMapViewTests {
195194 initMap()
196195 composeTestRule.runOnUiThread {
197196 val projection = cameraPositionState.projection
198- assertNotNull (projection)
199- assertTrue (
197+ assertThat (projection).isNotNull( )
198+ assertThat (
200199 projection!! .visibleRegion.latLngBounds.contains(startingPosition)
201- )
200+ ).isTrue()
202201 }
203202 }
204203
@@ -207,11 +206,11 @@ class GoogleMapViewTests {
207206 initMap()
208207 composeTestRule.runOnUiThread {
209208 val projection = cameraPositionState.projection
210- assertNotNull (projection)
209+ assertThat (projection).isNotNull( )
211210 val latLng = LatLng (23.4 , 25.6 )
212- assertFalse (
211+ assertThat (
213212 projection!! .visibleRegion.latLngBounds.contains(latLng)
214- )
213+ ).isFalse()
215214 }
216215 }
217216
@@ -295,15 +294,15 @@ class GoogleMapViewTests {
295294 markerState = rememberUpdatedMarkerState(position = positionState.value)
296295 }
297296
298- assertEquals(testPoint0, markerState.position)
297+ assertThat( markerState.position).isEqualTo(testPoint0 )
299298
300299 positionState.value = testPoint1
301300 composeTestRule.waitForIdle()
302- assertEquals(testPoint1, markerState.position)
301+ assertThat( markerState.position).isEqualTo(testPoint1 )
303302
304303 positionState.value = testPoint2
305304 composeTestRule.waitForIdle()
306- assertEquals(testPoint2, markerState.position)
305+ assertThat( markerState.position).isEqualTo(testPoint2 )
307306 }
308307
309308 private fun zoom (
@@ -322,4 +321,4 @@ class GoogleMapViewTests {
322321
323322 assertionBlock()
324323 }
325- }
324+ }
0 commit comments