package com.ibm.mil.readyapps.telco.hotspots; import android.location.Location; import com.google.android.gms.maps.model.LatLng; import com.google.gson.Gson; import com.ibm.mil.readyapps.telco.utils.MapUtils; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; import rx.Observable; import rx.functions.Action1; public class HotSpotPresenterTest { HotSpotViewMock viewMock; HotSpotPresenter presenter; HotSpot hotSpot; @Before public void setUp() { viewMock = new HotSpotViewMock(); presenter = new HotSpotPresenterImpl(viewMock, new HotSpotModelMock()); } @Test public void testGetOfflineHotSpots() { presenter.getOfflineHotSpots(getMockJson(), null, getMockLocation()) .first() .subscribe(new Action1<HotSpot>() { @Override public void call(HotSpot hotSpot) { HotSpotPresenterTest.this.hotSpot = hotSpot; } }); Assert.assertNotNull(hotSpot); Assert.assertEquals("HotSpot 0", hotSpot.getName()); } @Test public void testWatchMarkerClick() { presenter.getOfflineHotSpots(getMockJson(), null, getMockLocation()) .subscribe(new Action1<HotSpot>() { @Override public void call(HotSpot hotSpot) { HotSpotPresenterTest.this.hotSpot = hotSpot; } }); hotSpot.setLatitude(1.0); hotSpot.setLongitude(1.0); presenter.watchMarkerClick(Observable.just(new LatLng(1.0, 1.0))); HotSpot hotSpot = viewMock.getHotSpot(); Assert.assertNotNull(hotSpot); Assert.assertEquals(1.0, hotSpot.getLatitude()); Assert.assertEquals(1.0, hotSpot.getLongitude()); } @After public void tearDown() { hotSpot = null; } private String getMockJson() { HotSpot[] hotSpots = new HotSpot[10]; for (int i = 0, size = hotSpots.length; i < size; i++) { HotSpot hotSpot = new HotSpot(); hotSpot.setName("HotSpot " + i); hotSpots[i] = hotSpot; } return new Gson().toJson(hotSpots); } private Location getMockLocation() { return MapUtils.convertLatLng(30.398974, 97.712885); } }