1bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik/*
2bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * Copyright (C) 2016 The Android Open Source Project
3bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik *
4bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * Licensed under the Apache License, Version 2.0 (the "License");
5bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * you may not use this file except in compliance with the License.
6bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * You may obtain a copy of the License at
7bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik *
8bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik *      http://www.apache.org/licenses/LICENSE-2.0
9bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik *
10bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * Unless required by applicable law or agreed to in writing, software
11bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * distributed under the License is distributed on an "AS IS" BASIS,
12bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * See the License for the specific language governing permissions and
14bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * limitations under the License.
15bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik */
16bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
17bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paikpackage com.android.car.apitest;
18bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
19bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paikimport android.car.hardware.CarPropertyConfig;
20bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paikimport android.car.hardware.CarPropertyValue;
21bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paikimport android.os.Parcel;
22bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paikimport android.os.Parcelable;
23bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paikimport android.test.AndroidTestCase;
24bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
25bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik/**
26bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik * Base class to test {@link CarPropertyConfig} and {@link CarPropertyValue}.
27bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik */
28bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paikpublic class CarPropertyTestBase extends AndroidTestCase {
29bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
30bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected final static int PROPERTY_ID      = 0xBEEFBEEF;
31bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected final static int CAR_AREA_TYPE    = 0xDEADBEEF;
32bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected final static int WINDOW_DRIVER    = 0x00000001;
33bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected final static int WINDOW_PASSENGER = 0x00000002;
34bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
35bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    private Parcel mParcel;
36bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
37bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    @Override
38bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected void setUp() throws Exception {
39bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik        super.setUp();
40bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik        mParcel = Parcel.obtain();
41bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    }
42bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
43bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    @Override
44bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected void tearDown() throws Exception {
45bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik        mParcel.recycle();
46bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik        super.tearDown();
47bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    }
48bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
49bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected  <T extends Parcelable> T readFromParcel() {
50bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik        mParcel.setDataPosition(0);
51bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik        return mParcel.readParcelable(null);
52bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    }
53bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik
54bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    protected void writeToParcel(Parcelable value) {
55bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik        mParcel.writeParcelable(value, 0);
56bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik    }
57bf52d5bfd313ae33cdeb3c0b6252df9d153d6bebSteve Paik}
58