mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-02 09:33:06 +02:00
SensorEventCounterTest added; AntDirectSensorManagerTest udpated
This commit is contained in:
+1
-1
@@ -196,7 +196,7 @@ public class AntDirectSensorManager extends AntSensorManager
|
||||
}
|
||||
}
|
||||
|
||||
private boolean setupChannel(AntSensorBase sensor, byte channel) {
|
||||
protected boolean setupChannel(AntSensorBase sensor, byte channel) {
|
||||
Log.i(TAG, "setup channel=" + channel + " deviceType=" + sensor.getDeviceType());
|
||||
|
||||
return setupAntSensorChannel(sensor.getNetworkNumber(),
|
||||
|
||||
+51
-30
@@ -18,6 +18,7 @@ package com.google.android.apps.mytracks.services.sensors.ant;
|
||||
import com.dsi.ant.AntMesg;
|
||||
import com.google.android.apps.mytracks.Constants;
|
||||
import com.google.android.apps.mytracks.content.Sensor;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
@@ -27,26 +28,42 @@ import android.test.suitebuilder.annotation.SmallTest;
|
||||
public class AntDirectSensorManagerTest extends AndroidTestCase {
|
||||
|
||||
private SharedPreferences sharedPreferences;
|
||||
private AntDirectSensorManager manager;
|
||||
private AntSensorBase heartRateSensor;
|
||||
private static final byte HEART_RATE_CHANNEL = 0;
|
||||
|
||||
private class Manager extends AntDirectSensorManager {
|
||||
public Manager(Context context) {
|
||||
super(context);
|
||||
}
|
||||
@Override
|
||||
protected boolean setupChannel(AntSensorBase sensor, byte channel) {
|
||||
if (channel == HEART_RATE_CHANNEL) {
|
||||
heartRateSensor = sensor;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
private Manager manager;
|
||||
|
||||
public void setUp() {
|
||||
sharedPreferences = getContext().getSharedPreferences(
|
||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||
// Let's use default values.
|
||||
sharedPreferences.edit().clear().apply();
|
||||
manager = new AntDirectSensorManager(getContext());
|
||||
manager = new Manager(getContext());
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@SmallTest
|
||||
public void testBroadcastData() {
|
||||
// FIXME manager.setDeviceNumberHRM((short) 42);
|
||||
byte[] buff = new byte[11];
|
||||
buff[0] = 9;
|
||||
buff[1] = AntMesg.MESG_BROADCAST_DATA_ID;
|
||||
buff[2] = 0; // HRM CHANNEL
|
||||
buff[10] = (byte) 220;
|
||||
manager.handleMessage(buff);
|
||||
manager.setupAntSensorChannels();
|
||||
assertNotNull(heartRateSensor);
|
||||
|
||||
heartRateSensor.setDeviceNumber((short)42);
|
||||
byte[] buff = new byte[9];
|
||||
buff[0] = HEART_RATE_CHANNEL;
|
||||
buff[8] = (byte) 220;
|
||||
manager.handleMessage(AntMesg.MESG_BROADCAST_DATA_ID, buff);
|
||||
|
||||
Sensor.SensorDataSet sds = manager.getSensorDataSet();
|
||||
assertNotNull(sds);
|
||||
@@ -57,39 +74,43 @@ public class AntDirectSensorManagerTest extends AndroidTestCase {
|
||||
|
||||
assertFalse(sds.hasCadence());
|
||||
assertFalse(sds.hasPower());
|
||||
assertEquals(Sensor.SensorState.CONNECTED, manager.getSensorState());
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@SmallTest
|
||||
public void testChannelId() {
|
||||
byte[] buff = new byte[11];
|
||||
buff[0] = 9;
|
||||
buff[1] = AntMesg.MESG_CHANNEL_ID_ID;
|
||||
buff[3] = 42;
|
||||
manager.handleMessage(buff);
|
||||
/* FIXME
|
||||
assertEquals(42, manager.getDeviceNumberHRM());
|
||||
assertEquals(42,
|
||||
manager.setupAntSensorChannels();
|
||||
assertNotNull(heartRateSensor);
|
||||
|
||||
byte[] buff = new byte[9];
|
||||
buff[1] = 43;
|
||||
manager.handleMessage(AntMesg.MESG_CHANNEL_ID_ID, buff);
|
||||
|
||||
assertEquals(43, heartRateSensor.getDeviceNumber());
|
||||
assertEquals(43,
|
||||
sharedPreferences.getInt(
|
||||
getContext().getString(R.string.ant_heart_rate_sensor_id_key), -1));
|
||||
*/
|
||||
assertNull(manager.getSensorDataSet());
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@SmallTest
|
||||
public void testResponseEvent() {
|
||||
assertEquals(Sensor.SensorState.NONE, manager.getSensorState());
|
||||
byte[] buff = new byte[5];
|
||||
buff[0] = 3; // length
|
||||
buff[1] = AntMesg.MESG_RESPONSE_EVENT_ID;
|
||||
buff[2] = 0; // channel
|
||||
buff[3] = AntMesg.MESG_UNASSIGN_CHANNEL_ID;
|
||||
buff[4] = 0; // code
|
||||
manager.handleMessage(buff);
|
||||
manager.setupAntSensorChannels();
|
||||
assertNotNull(heartRateSensor);
|
||||
manager.setHeartRate(210);
|
||||
heartRateSensor.setDeviceNumber((short)42);
|
||||
|
||||
assertEquals(Sensor.SensorState.CONNECTED, manager.getSensorState());
|
||||
byte[] buff = new byte[3];
|
||||
buff[0] = HEART_RATE_CHANNEL;
|
||||
buff[1] = AntMesg.MESG_UNASSIGN_CHANNEL_ID;
|
||||
buff[2] = 0; // code
|
||||
manager.handleMessage(AntMesg.MESG_RESPONSE_EVENT_ID, buff);
|
||||
assertEquals(Sensor.SensorState.CONNECTED, manager.getSensorState());
|
||||
|
||||
heartRateSensor.setDeviceNumber((short)0);
|
||||
manager.handleMessage(AntMesg.MESG_RESPONSE_EVENT_ID, buff);
|
||||
assertEquals(Sensor.SensorState.DISCONNECTED, manager.getSensorState());
|
||||
assertNull(manager.getSensorDataSet());
|
||||
}
|
||||
|
||||
// TODO: Test timeout too.
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package com.google.android.apps.mytracks.services.sensors.ant;
|
||||
|
||||
import android.test.AndroidTestCase;
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
|
||||
public class SensorEventCounterTest extends AndroidTestCase {
|
||||
|
||||
@SmallTest
|
||||
public void testGetEventsPerMinute() throws InterruptedException {
|
||||
SensorEventCounter sec = new SensorEventCounter();
|
||||
assertEquals(0, sec.getEventsPerMinute(0, 0));
|
||||
assertEquals(0, sec.getEventsPerMinute(1, 1024));
|
||||
assertEquals(60, sec.getEventsPerMinute(2, 1024 * 2));
|
||||
assertEquals(60, sec.getEventsPerMinute(2, 1024 * 2));
|
||||
|
||||
Thread.sleep(2000);
|
||||
assertTrue(60 > sec.getEventsPerMinute(2, 1024 * 2));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user