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.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)
private StreamAdapter adapter;
private View view;
private Sensor sensor;
@Before
adapter = new StreamAdapter(mock(ButtonsActivity.class), new ArrayList<Map<String, Object>>(),
mock(EventBus.class), mock(GaugeHelper.class), mock(TopBarHelper.class), mock(SensorManager.class), mock(SessionManager.class));
sensor = mock(Sensor.class);
view = mock(View.class);
when(view.getTag()).thenReturn(sensor);
}
@Test
adapter.start();
verify(adapter.eventBus).register(adapter);
}
@Test
adapter.stop();
verify(adapter.eventBus).unregister(adapter);
}
@Test
when(view.getId()).thenReturn(R.id.record_stream);
adapter.onClick(view);
verify(adapter.sensorManager).toggleSensor(sensor);
}
@Test
when(view.getId()).thenReturn(R.id.view_stream);
adapter.onClick(view);
ViewStreamEvent expected = new ViewStreamEvent(sensor);
verify(adapter.eventBus, only()).post(expected);
}
@Test
adapter.onClick(view);
verify(adapter.context).suppressNextTap();
}
}