Skip to content

Commit

Permalink
Sessions can be saved again
Browse files Browse the repository at this point in the history
  • Loading branch information
obrok committed Apr 4, 2012
1 parent 6138fa4 commit 4754322
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 13 deletions.
Expand Up @@ -261,7 +261,7 @@ private synchronized void toggleAirCasting() {
} }


private void stopAirCasting() { private void stopAirCasting() {
if (sessionManager.getSoundMeasurements().isEmpty()) { if (sessionManager.getSession().isEmpty()) {
Toast.makeText(context, R.string.no_data, Toast.LENGTH_SHORT).show(); Toast.makeText(context, R.string.no_data, Toast.LENGTH_SHORT).show();
sessionManager.discardSession(); sessionManager.discardSession();
} else { } else {
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/pl/llp/aircasting/model/SessionManager.java
Expand Up @@ -268,6 +268,7 @@ private void notifyNewSession() {


public void startSession() { public void startSession() {
setSession(new Session()); setSession(new Session());
session.setStart(new Date());
startSensors(); startSensors();
sessionStarted = true; sessionStarted = true;
notificationHelper.showRecordingNotification(); notificationHelper.showRecordingNotification();
Expand All @@ -291,6 +292,8 @@ private void fillInDetails() {
session.setInstrument(metadataHelper.getInstrument()); session.setInstrument(metadataHelper.getInstrument());
session.setOsVersion(metadataHelper.getOSVersion()); session.setOsVersion(metadataHelper.getOSVersion());
session.setPhoneModel(metadataHelper.getPhoneModel()); session.setPhoneModel(metadataHelper.getPhoneModel());

session.setEnd(new Date());
} }


private void cleanup() { private void cleanup() {
Expand Down
55 changes: 43 additions & 12 deletions src/test/java/pl/llp/aircasting/model/SessionManagerTest.java
Expand Up @@ -19,6 +19,17 @@
*/ */
package pl.llp.aircasting.model; package pl.llp.aircasting.model;


import android.location.Location;
import android.location.LocationManager;
import com.google.common.collect.Iterables;
import com.google.common.eventbus.EventBus;
import com.google.inject.Inject;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import pl.llp.aircasting.InjectedTestRunner; import pl.llp.aircasting.InjectedTestRunner;
import pl.llp.aircasting.event.sensor.MeasurementEvent; import pl.llp.aircasting.event.sensor.MeasurementEvent;
import pl.llp.aircasting.event.sensor.SensorEvent; import pl.llp.aircasting.event.sensor.SensorEvent;
Expand All @@ -31,17 +42,7 @@
import pl.llp.aircasting.sensor.builtin.SimpleAudioReader; import pl.llp.aircasting.sensor.builtin.SimpleAudioReader;
import pl.llp.aircasting.sensor.external.ExternalSensor; import pl.llp.aircasting.sensor.external.ExternalSensor;


import android.location.Location; import java.util.Date;
import android.location.LocationManager;
import com.google.common.collect.Iterables;
import com.google.common.eventbus.EventBus;
import com.google.inject.Inject;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;


import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.not;
Expand Down Expand Up @@ -176,7 +177,7 @@ public void shouldProvidePeakForEachStream() {
String name = sensor.getSensorName(); String name = sensor.getSensorName();
when(stream.getSensorName()).thenReturn(name); when(stream.getSensorName()).thenReturn(name);
sessionManager.session.add(stream); sessionManager.session.add(stream);

assertThat(sessionManager.getPeak(sensor), equalTo(11.0)); assertThat(sessionManager.getPeak(sensor), equalTo(11.0));
} }


Expand Down Expand Up @@ -319,6 +320,36 @@ public void shouldNotAddMeasurementsToASavedSession() {
assertThat(sessionManager.getMeasurementStreams().isEmpty(), equalTo(true)); assertThat(sessionManager.getMeasurementStreams().isEmpty(), equalTo(true));
} }


@Test
public void shouldSetSessionStart() {
sessionManager.startSession();

int oneSecond = 1000;
assertThat(new Date().getTime() - sessionManager.session.getStart().getTime() < oneSecond, equalTo(true));
}

@Test
public void shouldSetSessionEnd() {
sessionManager.startSession();
triggerMeasurement();

sessionManager.finishSession(null);

verify(sessionManager.sessionRepository).save(Mockito.argThat(new BaseMatcher<Session>() {
@Override
public boolean matches(Object o) {
Session other = (Session) o;
long oneSecond = 1000;
return new Date().getTime() - other.getEnd().getTime() < oneSecond;
}

@Override
public void describeTo(Description description) {
description.appendText("Session with end set");
}
}), Mockito.<ProgressListener>any());
}

@Test @Test
public void shouldSaveAdditionalData() { public void shouldSaveAdditionalData() {
fail("Needs a redo"); fail("Needs a redo");
Expand Down

0 comments on commit 4754322

Please sign in to comment.