diff options
author | Antonio Cortes <antoniocortes@google.com> | 2017-03-22 13:00:02 -0700 |
---|---|---|
committer | Antonio Cortes <antoniocortes@google.com> | 2017-03-23 08:44:51 -0700 |
commit | 01a60395cdba8df0e306d1f692d4677799485b6f (patch) | |
tree | 84bf0ae9b79e3644b61c6cc76914f6b190d0e739 | |
parent | 7837d8d872331dce3c68facc81affd684db929bf (diff) | |
download | Car-01a60395cdba8df0e306d1f692d4677799485b6f.tar.gz |
Updating VMS interfaces to use VmsLayer.
Test: runtest -x packages/services/Car/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java
Test: runtest -x packages/services/Car/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java
Test: runtest -x packages/services/Car/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java
Test: runtest -x packages/services/Car/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java
Bug: 36214569
Change-Id: Iee5a0595ba5bb175d9b1b6189d15902fd222a967
16 files changed, 96 insertions, 145 deletions
diff --git a/car-lib/src/android/car/vms/IVmsPublisherService.aidl b/car-lib/src/android/car/vms/IVmsPublisherService.aidl index f122ec6a21..e7464579cd 100644 --- a/car-lib/src/android/car/vms/IVmsPublisherService.aidl +++ b/car-lib/src/android/car/vms/IVmsPublisherService.aidl @@ -28,7 +28,7 @@ interface IVmsPublisherService { /** * Client call to publish a message. */ - oneway void publish(in IBinder token, int layer, int version, in byte[] message) = 0; + oneway void publish(in IBinder token, in VmsLayer layer, in byte[] message) = 0; /** * Returns the list of VmsLayers that has any clients subscribed to it. diff --git a/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl b/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl index 8a0f546e82..79c88ac46e 100644 --- a/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl +++ b/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl @@ -25,7 +25,7 @@ oneway interface IVmsSubscriberClient { /** * A VmsService uses this callback to pass messages to subscribers. */ - void onVmsMessageReceived(in int layerId, in int layerVersion, in byte[] payload) = 0; + void onVmsMessageReceived(in VmsLayer layer, in byte[] payload) = 0; void onLayersAvailabilityChange(in List<VmsLayer> availableLayers) = 1; } diff --git a/car-lib/src/android/car/vms/IVmsSubscriberService.aidl b/car-lib/src/android/car/vms/IVmsSubscriberService.aidl index 40ee67fc25..236ae5a94c 100644 --- a/car-lib/src/android/car/vms/IVmsSubscriberService.aidl +++ b/car-lib/src/android/car/vms/IVmsSubscriberService.aidl @@ -28,8 +28,7 @@ interface IVmsSubscriberService { */ void addVmsSubscriberClientListener( in IVmsSubscriberClient listener, - int layer, - int version) = 0; + in VmsLayer layer) = 0; /** * Subscribes the listener to receive messages from all published layer/version. The @@ -43,8 +42,7 @@ interface IVmsSubscriberService { */ void removeVmsSubscriberClientListener( in IVmsSubscriberClient listener, - int layer, - int version) = 2; + in VmsLayer layer) = 2; /** * Tells the VmsSubscriberService a passive client unsubscribes. This will not unsubscribe diff --git a/car-lib/src/android/car/vms/VmsPublisherClientService.java b/car-lib/src/android/car/vms/VmsPublisherClientService.java index c1ef1dd06c..5fae38c687 100644 --- a/car-lib/src/android/car/vms/VmsPublisherClientService.java +++ b/car-lib/src/android/car/vms/VmsPublisherClientService.java @@ -101,14 +101,13 @@ public abstract class VmsPublisherClientService extends Service { /** * Uses the VmsPublisherService binder to publish messages. * - * @param layerId the layer to publish to. - * @param layerVersion the layer's version to publish to. + * @param layer the layer to publish to. * @param payload the message to be sent. * @return if the call to the method VmsPublisherService.publish was successful. */ - public final boolean publish(int layerId, int layerVersion, byte[] payload) { + public final boolean publish(VmsLayer layer, byte[] payload) { if (DBG) { - Log.d(TAG, "Publishing for layer ID: " + layerId + " Version: " + layerVersion); + Log.d(TAG, "Publishing for layer : " + layer); } if (mVmsPublisherService == null) { throw new IllegalStateException("VmsPublisherService not set."); @@ -122,7 +121,7 @@ public abstract class VmsPublisherClientService extends Service { throw new IllegalStateException("VmsPublisherService does not have a valid token."); } try { - mVmsPublisherService.publish(token, layerId, layerVersion, payload); + mVmsPublisherService.publish(token, layer, payload); return true; } catch (RemoteException e) { Log.e(TAG, "unable to publish message: " + payload, e); diff --git a/car-lib/src/android/car/vms/VmsSubscriberManager.java b/car-lib/src/android/car/vms/VmsSubscriberManager.java index 0bdab95c51..d0b8c624c8 100644 --- a/car-lib/src/android/car/vms/VmsSubscriberManager.java +++ b/car-lib/src/android/car/vms/VmsSubscriberManager.java @@ -53,7 +53,7 @@ public final class VmsSubscriberManager implements CarManagerBase { /** Interface exposed to VMS subscribers: it is a wrapper of IVmsSubscriberClient. */ public interface VmsSubscriberClientListener { /** Called when the property is updated */ - void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload); + void onVmsMessageReceived(VmsLayer layer, byte[] payload); /** Called when layers availability change */ void onLayersAvailabilityChange(List<VmsLayer> availableLayers); @@ -84,8 +84,7 @@ public final class VmsSubscriberManager implements CarManagerBase { VmsDataMessage vmsDataMessage = (VmsDataMessage) msg.obj; // Dispatch the parsed message - mgr.dispatchOnReceiveMessage(vmsDataMessage.getLayerId(), - vmsDataMessage.getLayerVersion(), + mgr.dispatchOnReceiveMessage(vmsDataMessage.getLayer(), vmsDataMessage.getPayload()); } break; @@ -111,10 +110,10 @@ public final class VmsSubscriberManager implements CarManagerBase { mHandler = new VmsEventHandler(this, handler.getLooper()); mIListener = new IVmsSubscriberClient.Stub() { @Override - public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) + public void onVmsMessageReceived(VmsLayer layer, byte[] payload) throws RemoteException { // Create the data message - VmsDataMessage vmsDataMessage = new VmsDataMessage(layerId, layerVersion, payload); + VmsDataMessage vmsDataMessage = new VmsDataMessage(layer, payload); mHandler.sendMessage( mHandler.obtainMessage( VmsEventHandler.ON_RECEIVE_MESSAGE_EVENT, @@ -163,16 +162,15 @@ public final class VmsSubscriberManager implements CarManagerBase { } /** - * Subscribes to listen to the layer/version specified. + * Subscribes to listen to the layer specified. * - * @param layer the layer id to subscribe to. - * @param version the layer version to subscribe to. + * @param layer the layer to subscribe to. * @throws IllegalStateException if the listener was not set via {@link #setListener}. */ - public void subscribe(int layer, int version) + public void subscribe(VmsLayer layer) throws CarNotConnectedException { if (DBG) { - Log.d(TAG, "Subscribing to layer: " + layer + ", version: " + version); + Log.d(TAG, "Subscribing to layer: " + layer); } VmsSubscriberClientListener listener; synchronized (mListenerLock) { @@ -184,7 +182,7 @@ public final class VmsSubscriberManager implements CarManagerBase { throw new IllegalStateException("Listener was not set."); } try { - mVmsSubscriberService.addVmsSubscriberClientListener(mIListener, layer, version); + mVmsSubscriberService.addVmsSubscriberClientListener(mIListener, layer); } catch (RemoteException e) { Log.e(TAG, "Could not connect: ", e); throw new CarNotConnectedException(e); @@ -220,13 +218,12 @@ public final class VmsSubscriberManager implements CarManagerBase { /** * Unsubscribes from the layer/version specified. * - * @param layer the layer id to unsubscribe from. - * @param version the layer version to unsubscribe from. + * @param layer the layer to unsubscribe from. * @throws IllegalStateException if the listener was not set via {@link #setListener}. */ - public void unsubscribe(int layer, int version) { + public void unsubscribe(VmsLayer layer) { if (DBG) { - Log.d(TAG, "Unsubscribing from layer: " + layer + ", version: " + version); + Log.d(TAG, "Unsubscribing from layer: " + layer); } VmsSubscriberClientListener listener; synchronized (mListenerLock) { @@ -238,7 +235,7 @@ public final class VmsSubscriberManager implements CarManagerBase { throw new IllegalStateException("Listener was not set."); } try { - mVmsSubscriberService.removeVmsSubscriberClientListener(mIListener, layer, version); + mVmsSubscriberService.removeVmsSubscriberClientListener(mIListener, layer); } catch (RemoteException e) { Log.e(TAG, "Failed to unregister subscriber", e); // ignore @@ -247,7 +244,7 @@ public final class VmsSubscriberManager implements CarManagerBase { } } - private void dispatchOnReceiveMessage(int layerId, int layerVersion, byte[] payload) { + private void dispatchOnReceiveMessage(VmsLayer layer, byte[] payload) { VmsSubscriberClientListener listener; synchronized (mListenerLock) { listener = mListener; @@ -256,7 +253,7 @@ public final class VmsSubscriberManager implements CarManagerBase { Log.e(TAG, "Listener died, not dispatching event."); return; } - listener.onVmsMessageReceived(layerId, layerVersion, payload); + listener.onVmsMessageReceived(layer, payload); } private void dispatchOnAvailabilityChangeMessage(List<VmsLayer> availableLayers) { @@ -278,21 +275,16 @@ public final class VmsSubscriberManager implements CarManagerBase { } private static final class VmsDataMessage { - private int mLayerId; - private int mLayerVersion; - private byte[] mPayload; + private final VmsLayer mLayer; + private final byte[] mPayload; - public VmsDataMessage(int layerId, int layerVersion, byte[] payload) { - mLayerId = layerId; - mLayerVersion = layerVersion; + public VmsDataMessage(VmsLayer layer, byte[] payload) { + mLayer = layer; mPayload = payload; } - public int getLayerId() { - return mLayerId; - } - public int getLayerVersion() { - return mLayerVersion; + public VmsLayer getLayer() { + return mLayer; } public byte[] getPayload() { return mPayload; diff --git a/service/src/com/android/car/VmsPublisherService.java b/service/src/com/android/car/VmsPublisherService.java index 7fb5bb3121..ab2c570bc7 100644 --- a/service/src/com/android/car/VmsPublisherService.java +++ b/service/src/com/android/car/VmsPublisherService.java @@ -105,12 +105,11 @@ public class VmsPublisherService extends IVmsPublisherService.Stub // Implements IVmsPublisherService interface. @Override - public void publish(IBinder token, int layerId, int layerVersion, byte[] payload) { + public void publish(IBinder token, VmsLayer layer, byte[] payload) { if (DBG) { - Log.d(TAG, "Publishing for layer ID: " + layerId + " Version: " + layerVersion); + Log.d(TAG, "Publishing for layer: " + layer); } ICarImpl.assertVmsPublisherPermission(mContext); - VmsLayer layer = new VmsLayer(layerId, layerVersion); // Send the message to application listeners. Set<IVmsSubscriberClient> listeners = mHal.getListeners(layer); @@ -120,7 +119,7 @@ public class VmsPublisherService extends IVmsPublisherService.Stub } for (IVmsSubscriberClient listener : listeners) { try { - listener.onVmsMessageReceived(layerId, layerVersion, payload); + listener.onVmsMessageReceived(layer, payload); } catch (RemoteException ex) { Log.e(TAG, "unable to publish to listener: " + listener); } @@ -129,7 +128,7 @@ public class VmsPublisherService extends IVmsPublisherService.Stub // Send the message to HAL if (mHal.isHalSubscribed(layer)) { Log.d(TAG, "HAL is subscribed"); - mHal.setDataMessage(layerId, layerVersion, payload); + mHal.setDataMessage(layer, payload); } else { Log.d(TAG, "HAL is NOT subscribed"); } diff --git a/service/src/com/android/car/VmsSubscriberService.java b/service/src/com/android/car/VmsSubscriberService.java index f591f7648c..97ed27ff8c 100644 --- a/service/src/com/android/car/VmsSubscriberService.java +++ b/service/src/com/android/car/VmsSubscriberService.java @@ -217,24 +217,20 @@ public class VmsSubscriberService extends IVmsSubscriberService.Stub // Implements IVmsService interface. @Override - public void addVmsSubscriberClientListener(IVmsSubscriberClient listener, - int layerId, int layerVersion) { + public void addVmsSubscriberClientListener(IVmsSubscriberClient listener, VmsLayer layer) { synchronized (mSubscriberServiceLock) { // Add the listener so it can subscribe. mMessageReceivedManager.add(listener); // Add the subscription for the layer. - VmsLayer layer = new VmsLayer(layerId, layerVersion); mHal.addSubscription(listener, layer); } } @Override - public void removeVmsSubscriberClientListener(IVmsSubscriberClient listener, - int layerId, int layerVersion) { + public void removeVmsSubscriberClientListener(IVmsSubscriberClient listener, VmsLayer layer) { synchronized (mSubscriberServiceLock) { // Remove the subscription. - VmsLayer layer = new VmsLayer(layerId, layerVersion); mHal.removeSubscription(listener, layer); // Remove the listener if it has no more subscriptions. @@ -273,8 +269,7 @@ public class VmsSubscriberService extends IVmsSubscriberService.Stub // Implements VmsHalSubscriberListener interface @Override - public void onChange(int layerId, int layerVersion, byte[] payload) { - VmsLayer layer = new VmsLayer(layerId, layerVersion); + public void onChange(VmsLayer layer, byte[] payload) { if(DBG) { Log.d(TAG, "Publishing a message for layer: " + layer); } @@ -288,7 +283,7 @@ public class VmsSubscriberService extends IVmsSubscriberService.Stub for (IVmsSubscriberClient subscriber : listeners) { try { - subscriber.onVmsMessageReceived(layerId, layerVersion, payload); + subscriber.onVmsMessageReceived(layer, payload); } catch (RemoteException e) { // If we could not send a record, its likely the connection snapped. Let the binder // death handle the situation. diff --git a/service/src/com/android/car/hal/VmsHalService.java b/service/src/com/android/car/hal/VmsHalService.java index 0c4c094b7e..141205e45f 100644 --- a/service/src/com/android/car/hal/VmsHalService.java +++ b/service/src/com/android/car/hal/VmsHalService.java @@ -79,7 +79,7 @@ public class VmsHalService extends HalServiceBase { * The VmsSubscriberService implements this interface to receive data from the HAL. */ public interface VmsHalSubscriberListener { - void onChange(int layerId, int layerVersion, byte[] payload); + void onChange(VmsLayer layer, byte[] payload); } /** @@ -229,7 +229,7 @@ public class VmsHalService extends HalServiceBase { public void notifyPublishers(VmsLayer layer, boolean hasSubscribers) { synchronized (mLock) { // notify the HAL - setSubscriptionRequest(layer.getId(), layer.getVersion(), hasSubscribers); + setSubscriptionRequest(layer, hasSubscribers); // Notify the App publishers for (VmsHalPublisherListener listener : mPublisherListeners) { @@ -312,7 +312,7 @@ public class VmsHalService extends HalServiceBase { // Send the message. for (VmsHalSubscriberListener listener : mSubscriberListeners) { - listener.onChange(layerId, layerVersion, payload); + listener.onChange(new VmsLayer(layerId, layerVersion), payload); } } else if (messageType == VmsMessageType.SUBSCRIBE) { addHalSubscription(new VmsLayer(layerId, layerVersion)); @@ -332,22 +332,20 @@ public class VmsHalService extends HalServiceBase { /** * Updates the VMS HAL property with the given value. * - * @param property the value used to update the HAL property. - * @return true if the call to the HAL to update the property was successful. + * @param layer layer data to update the hal property. + * @param hasSubscribers if it is a subscribe or unsubscribe message. + * @return true if the call to the HAL to update the property was successful. */ - public boolean setSubscriptionRequest(int layerId, int layerVersion, boolean hasSubscribers) { + public boolean setSubscriptionRequest(VmsLayer layer, boolean hasSubscribers) { VehiclePropValue vehiclePropertyValue = toVehiclePropValue( - hasSubscribers ? VmsMessageType.SUBSCRIBE : VmsMessageType.UNSUBSCRIBE, - layerId, - layerVersion); + hasSubscribers ? VmsMessageType.SUBSCRIBE : VmsMessageType.UNSUBSCRIBE, layer); return setPropertyValue(vehiclePropertyValue); } - public boolean setDataMessage(int layerId, int layerVersion, byte[] payload) { + public boolean setDataMessage(VmsLayer layer, byte[] payload) { VehiclePropValue vehiclePropertyValue = toVehiclePropValue(VmsMessageType.DATA, - layerId, - layerVersion, - payload); + layer, + payload); return setPropertyValue(vehiclePropertyValue); } @@ -362,26 +360,23 @@ public class VmsHalService extends HalServiceBase { } /** Creates a {@link VehiclePropValue} */ - static VehiclePropValue toVehiclePropValue(int messageType, - int layerId, - int layerVersion) { + private static VehiclePropValue toVehiclePropValue(int messageType, VmsLayer layer) { VehiclePropValue vehicleProp = new VehiclePropValue(); vehicleProp.prop = HAL_PROPERTY_ID; vehicleProp.areaId = VehicleAreaType.VEHICLE_AREA_TYPE_NONE; VehiclePropValue.RawValue v = vehicleProp.value; v.int32Values.add(messageType); - v.int32Values.add(layerId); - v.int32Values.add(layerVersion); + v.int32Values.add(layer.getId()); + v.int32Values.add(layer.getVersion()); return vehicleProp; } - /** Creates a {@link VehiclePropValue} with payload*/ - static VehiclePropValue toVehiclePropValue(int messageType, - int layerId, - int layerVersion, - byte[] payload) { - VehiclePropValue vehicleProp = toVehiclePropValue(messageType, layerId, layerVersion); + /** Creates a {@link VehiclePropValue} with payload */ + private static VehiclePropValue toVehiclePropValue(int messageType, + VmsLayer layer, + byte[] payload) { + VehiclePropValue vehicleProp = toVehiclePropValue(messageType, layer); VehiclePropValue.RawValue v = vehicleProp.value; v.bytes.ensureCapacity(payload.length); for (byte b : payload) { diff --git a/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java b/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java index 1677eafe85..d414d08128 100644 --- a/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java +++ b/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java @@ -30,8 +30,7 @@ import java.util.concurrent.atomic.AtomicBoolean; */ public class VmsPublisherClientSampleService extends VmsPublisherClientService { public static final int PUBLISH_EVENT = 0; - public static final int TEST_LAYER_ID = 0; - public static final int TEST_LAYER_VERSION = 0; + public static final VmsLayer TEST_LAYER = new VmsLayer(0,0); private byte mCounter = 0; private AtomicBoolean mInitialized = new AtomicBoolean(false); @@ -57,7 +56,7 @@ public class VmsPublisherClientSampleService extends VmsPublisherClientService { public void onVmsSubscriptionChange(List<VmsLayer> layers, long sequence) { if (mInitialized.compareAndSet(false, true)) { for (VmsLayer layer : layers) { - if (layer.getId() == TEST_LAYER_ID && layer.getVersion() == TEST_LAYER_VERSION) { + if (layer.equals(TEST_LAYER)) { mHandler.sendEmptyMessage(PUBLISH_EVENT); } } @@ -65,7 +64,7 @@ public class VmsPublisherClientSampleService extends VmsPublisherClientService { } private void periodicPublish() { - publish(TEST_LAYER_ID, TEST_LAYER_VERSION, new byte[]{mCounter}); + publish(TEST_LAYER, new byte[]{mCounter}); ++mCounter; mHandler.sendEmptyMessageDelayed(PUBLISH_EVENT, 1000); } diff --git a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java b/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java index 74b377a04e..4ee95a131d 100644 --- a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java +++ b/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java @@ -36,8 +36,7 @@ public class VmsSubscriberClientSampleActivity extends Activity { private static final String TAG = "VmsSampleActivity"; // The layer id and version should match the ones defined in // com.google.android.car.vms.publisher.VmsPublisherClientSampleService - public static final int TEST_LAYER_ID = 0; - public static final int TEST_LAYER_VERSION = 0; + public static final VmsLayer TEST_LAYER = new VmsLayer(0, 0); private Car mCarApi; private TextView mTextView; @@ -91,7 +90,7 @@ public class VmsSubscriberClientSampleActivity extends Activity { private void configureSubscriptions(VmsSubscriberManager vmsSubscriberManager) { try { vmsSubscriberManager.setListener(mListener); - vmsSubscriberManager.subscribe(TEST_LAYER_ID, TEST_LAYER_VERSION); + vmsSubscriberManager.subscribe(TEST_LAYER); } catch (android.car.CarNotConnectedException e) { Log.e(TAG, "Car is not connected!", e); } @@ -101,7 +100,7 @@ public class VmsSubscriberClientSampleActivity extends Activity { private final VmsSubscriberManager.VmsSubscriberClientListener mListener = new VmsSubscriberManager.VmsSubscriberClientListener() { @Override - public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) { + public void onVmsMessageReceived(VmsLayer layer, byte[] payload) { mTextView.setText(String.valueOf(payload[0])); } diff --git a/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java b/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java index 4d03759bfd..96635f14f6 100644 --- a/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java +++ b/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java @@ -35,19 +35,7 @@ public class SimpleVmsPublisherClientService extends VmsPublisherClientService { @Override public void onVmsPublisherServiceReady() { // Publish a property that is going to be verified in the test. - publish(getLayerId(), getLayerVersion(), getPayload()); - } - - // methods exposed for testing. - static public int getLayerId() { - return 12; - } - - static public int getLayerVersion() { - return 34; - } - - static byte[] getPayload() { - return new byte[]{1, 1, 2, 3, 5, 8, 13}; + publish(VmsPublisherClientServiceTest.MOCK_PUBLISHER_LAYER, + VmsPublisherClientServiceTest.PAYLOAD); } } diff --git a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java index 5d36875b9b..b6770f7c4f 100644 --- a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java +++ b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java @@ -47,11 +47,8 @@ public class VmsPublisherClientMockService extends VmsPublisherClientService { private void publishIfNeeded(List<VmsLayer> layers) { for (VmsLayer layer : layers) { - if (layer.getId() == VmsPublisherSubscriberTest.LAYER_ID - && layer.getVersion() == VmsPublisherSubscriberTest.LAYER_VERSION) { - publish(VmsPublisherSubscriberTest.LAYER_ID, - VmsPublisherSubscriberTest.LAYER_VERSION, - VmsPublisherSubscriberTest.PAYLOAD); + if (layer.equals(VmsPublisherSubscriberTest.LAYER)) { + publish(VmsPublisherSubscriberTest.LAYER, VmsPublisherSubscriberTest.PAYLOAD); } } } diff --git a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java index 84f564de05..c4b054aca1 100644 --- a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java +++ b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java @@ -19,6 +19,7 @@ package com.android.car.test; import android.annotation.ArrayRes; import android.car.VehicleAreaType; import android.car.annotation.FutureFeature; +import android.car.vms.VmsLayer; import android.content.Context; import android.content.ContextWrapper; import android.content.pm.PackageManager; @@ -48,6 +49,9 @@ public class VmsPublisherClientServiceTest extends MockedCarTestBase { private static final String TAG = "VmsPublisherTest"; private static final int MOCK_PUBLISHER_LAYER_ID = 12; private static final int MOCK_PUBLISHER_LAYER_VERSION = 34; + public static final VmsLayer MOCK_PUBLISHER_LAYER = new VmsLayer(MOCK_PUBLISHER_LAYER_ID, + MOCK_PUBLISHER_LAYER_VERSION); + public static final byte[] PAYLOAD = new byte[]{1, 1, 2, 3, 5, 8, 13}; private HalHandler mHalHandler; // Used to block until the HAL property is updated in HalHandler.onPropertySet. @@ -135,9 +139,9 @@ public class VmsPublisherClientServiceTest extends MockedCarTestBase { payload[i] = rawValue.bytes.get(i); } assertEquals(VmsMessageType.DATA, messageType); - assertEquals(SimpleVmsPublisherClientService.getLayerId(), layerId); - assertEquals(SimpleVmsPublisherClientService.getLayerVersion(), layerVersion); - assertTrue(Arrays.equals(SimpleVmsPublisherClientService.getPayload(), payload)); + assertEquals(MOCK_PUBLISHER_LAYER_ID, layerId); + assertEquals(MOCK_PUBLISHER_LAYER_VERSION, layerVersion); + assertTrue(Arrays.equals(PAYLOAD, payload)); } private class HalHandler implements VehicleHalPropertyHandler { diff --git a/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java b/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java index b215ffb46c..401adb2f60 100644 --- a/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java +++ b/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java @@ -39,8 +39,9 @@ import java.util.concurrent.TimeUnit; @FutureFeature public class VmsPublisherSubscriberTest extends MockedCarTestBase { - public static final int LAYER_ID = 88; - public static final int LAYER_VERSION = 19; + private static final int LAYER_ID = 88; + private static final int LAYER_VERSION = 19; + public static final VmsLayer LAYER = new VmsLayer(LAYER_ID, LAYER_VERSION); public static final byte[] PAYLOAD = new byte[]{2, 3, 5, 7, 11, 13, 17}; private HalHandler mHalHandler; @@ -103,11 +104,10 @@ public class VmsPublisherSubscriberTest extends MockedCarTestBase { Car.VMS_SUBSCRIBER_SERVICE); TestListener listener = new TestListener(); vmsSubscriberManager.setListener(listener); - vmsSubscriberManager.subscribe(LAYER_ID, LAYER_VERSION); + vmsSubscriberManager.subscribe(LAYER); assertTrue(mSubscriberSemaphore.tryAcquire(2L, TimeUnit.SECONDS)); - assertEquals(LAYER_ID, listener.getLayerId()); - assertEquals(LAYER_VERSION, listener.getLayerVersion()); + assertEquals(LAYER, listener.getLayer()); assertTrue(Arrays.equals(PAYLOAD, listener.getPayload())); } @@ -115,17 +115,14 @@ public class VmsPublisherSubscriberTest extends MockedCarTestBase { } private class TestListener implements VmsSubscriberManager.VmsSubscriberClientListener { - private int mLayerId; - private int mLayerVersion; + private VmsLayer mLayer; private byte[] mPayload; @Override - public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) { - assertEquals(LAYER_ID, layerId); - assertEquals(LAYER_VERSION, layerVersion); + public void onVmsMessageReceived(VmsLayer layer, byte[] payload) { + assertEquals(LAYER, layer); assertTrue(Arrays.equals(PAYLOAD, payload)); - mLayerId = layerId; - mLayerVersion = layerVersion; + mLayer = layer; mPayload = payload; mSubscriberSemaphore.release(); } @@ -137,12 +134,8 @@ public class VmsPublisherSubscriberTest extends MockedCarTestBase { // and update VmsPublisherClientMockService } - public int getLayerId() { - return mLayerId; - } - - public int getLayerVersion() { - return mLayerVersion; + public VmsLayer getLayer() { + return mLayer; } public byte[] getPayload() { diff --git a/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java b/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java index 0a6563a809..58a4c98966 100644 --- a/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java +++ b/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java @@ -43,6 +43,8 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase { private static final String TAG = "VmsSubscriberManagerTest"; private static final int SUBSCRIPTION_LAYER_ID = 2; private static final int SUBSCRIPTION_LAYER_VERSION = 3; + private static final VmsLayer SUBSCRIPTION_LAYER = new VmsLayer(SUBSCRIPTION_LAYER_ID, + SUBSCRIPTION_LAYER_VERSION); private HalHandler mHalHandler; // Used to block until the HAL property is updated in HalHandler.onPropertySet. @@ -72,7 +74,7 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase { Car.VMS_SUBSCRIBER_SERVICE); TestListener listener = new TestListener(); vmsSubscriberManager.setListener(listener); - vmsSubscriberManager.subscribe(SUBSCRIPTION_LAYER_ID, SUBSCRIPTION_LAYER_VERSION); + vmsSubscriberManager.subscribe(SUBSCRIPTION_LAYER); // Inject a value and wait for its callback in TestListener.onVmsMessageReceived. VehiclePropValue v = VehiclePropValueBuilder.newBuilder(VehicleProperty.VEHICLE_MAP_SERVICE) @@ -88,8 +90,7 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase { getMockedVehicleHal().injectEvent(v); assertTrue(mSubscriberSemaphore.tryAcquire(2L, TimeUnit.SECONDS)); - assertEquals(SUBSCRIPTION_LAYER_ID, listener.getLayerId()); - assertEquals(SUBSCRIPTION_LAYER_VERSION, listener.getLayerVersion()); + assertEquals(SUBSCRIPTION_LAYER, listener.getLayer()); byte[] expectedPayload = {(byte) 0xa, (byte) 0xb}; assertTrue(Arrays.equals(expectedPayload, listener.getPayload())); } @@ -117,8 +118,7 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase { getMockedVehicleHal().injectEvent(v); assertTrue(mSubscriberSemaphore.tryAcquire(2L, TimeUnit.SECONDS)); - assertEquals(SUBSCRIPTION_LAYER_ID, listener.getLayerId()); - assertEquals(SUBSCRIPTION_LAYER_VERSION, listener.getLayerVersion()); + assertEquals(SUBSCRIPTION_LAYER, listener.getLayer()); byte[] expectedPayload = {(byte) 0xa, (byte) 0xb}; assertTrue(Arrays.equals(expectedPayload, listener.getPayload())); } @@ -154,16 +154,13 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase { private class TestListener implements VmsSubscriberClientListener{ - private int mLayerId; - private int mLayerVersion; + private VmsLayer mLayer; private byte[] mPayload; @Override - public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) { - Log.d(TAG, "onVmsMessageReceived: Layer: " + layerId + - " Version: " + layerVersion + " Payload: " + payload); - mLayerId = layerId; - mLayerVersion = layerVersion; + public void onVmsMessageReceived(VmsLayer layer, byte[] payload) { + Log.d(TAG, "onVmsMessageReceived: layer: " + layer + " Payload: " + payload); + mLayer = layer; mPayload = payload; mSubscriberSemaphore.release(); } @@ -173,12 +170,8 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase { Log.d(TAG, "onLayersAvailabilityChange: Layers: " + availableLayers); } - public int getLayerId() { - return mLayerId; - } - - public int getLayerVersion() { - return mLayerVersion; + public VmsLayer getLayer() { + return mLayer; } public byte[] getPayload() { diff --git a/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java b/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java index 7a889e9c7e..d9a395e0e0 100644 --- a/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java +++ b/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java @@ -130,7 +130,7 @@ public class VmsRoutingTest extends AndroidTestCase { class MockVmsListener extends IVmsSubscriberClient.Stub { @Override - public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) {} + public void onVmsMessageReceived(VmsLayer layer, byte[] payload) {} @Override public void onLayersAvailabilityChange(List<VmsLayer> availableLayers) {} |