### Question:
InfoWindow { public void update() { MapboxMap mapboxMap = this.mapboxMap.get(); Marker marker = boundMarker.get(); View view = this.view.get(); if (mapboxMap != null && marker != null && view != null) { coordinates = mapboxMap.getProjection().toScreenLocation(marker.getPosition()); if (view instanceof BubbleLayout) { view.setX(coordinates.x + viewWidthOffset - markerWidthOffset); } else { view.setX(coordinates.x - (view.getMeasuredWidth() / 2) - markerWidthOffset); } view.setY(coordinates.y + viewHeightOffset); } } InfoWindow(MapView mapView, int layoutResId, MapboxMap mapboxMap);   InfoWindow(@NonNull View view, MapboxMap mapboxMap); void update(); @Nullable View getView();  }### Answer:
@Test public void testUpdate() { LatLng latLng = new LatLng(0, 0); Projection projection = mock(Projection.class); when(mMapboxMap.getProjection()).thenReturn(projection); when(projection.toScreenLocation(latLng)).thenReturn(new PointF(0, 0)); InfoWindow infoWindow = new InfoWindow(mMapView, mMapboxMap); infoWindow.open(mMapView, new MarkerOptions().position(latLng).getMarker(), latLng, 0, 0); infoWindow.update(); }