package pl.llp.aircasting.activity.adapter; import pl.llp.aircasting.InjectedTestRunner; import pl.llp.aircasting.R; import pl.llp.aircasting.activity.ButtonsActivity; import pl.llp.aircasting.event.ui.ViewStreamEvent; import pl.llp.aircasting.helper.GaugeHelper; import pl.llp.aircasting.helper.StreamViewHelper; import pl.llp.aircasting.helper.TopBarHelper; import pl.llp.aircasting.model.Sensor; import pl.llp.aircasting.model.SensorManager; import pl.llp.aircasting.model.SessionManager; import android.view.View; import com.google.common.eventbus.EventBus; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import java.util.ArrayList; import java.util.Map; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.only; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(InjectedTestRunner.class) public class StreamAdapterTest { private StreamAdapter adapter; private View view; private Sensor sensor; @Before public void setup() { adapter = new StreamAdapter(mock(ButtonsActivity.class), new ArrayList<Map<String, Object>>(), mock(EventBus.class), mock(StreamViewHelper.class), mock(SensorManager.class), mock(SessionManager.class)); sensor = mock(Sensor.class); view = mock(View.class); when(view.getTag()).thenReturn(sensor); } @Test public void shouldRegisterForEventsOnStart() { adapter.start(); verify(adapter.eventBus).register(adapter); } @Test public void shouldUnregisterFromEventsOnStop() { adapter.stop(); verify(adapter.eventBus).unregister(adapter); } @Test public void shouldSuppressNextTapWhenAButtonIsClicked() { adapter.onClick(view); verify(adapter.context).suppressNextTap(); } }