blob: ebe6340852c2a8e0916937e0e01732d995104f8a [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import android.os.Binder;
import android.os.Parcel;
import android.os.RemoteException;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import static junit.framework.Assert.assertTrue;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.sameInstance;
import static org.hamcrest.MatcherAssert.assertThat;
@RunWith(WithTestDefaultsRunner.class)
public class ShadowBinderTest {
@Test
public void transactCallsOnTransact() throws Exception {
TestBinder testBinder = new TestBinder();
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
assertTrue(testBinder.transact(2, data, reply, 3));
assertThat(testBinder.code, equalTo(2));
assertThat(testBinder.data, sameInstance(data));
assertThat(testBinder.reply, sameInstance(reply));
assertThat(testBinder.flags, equalTo(3));
}
static class TestBinder extends Binder {
int code;
Parcel data;
Parcel reply;
int flags;
@Override
protected boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException {
this.code = code;
this.data = data;
this.reply = reply;
this.flags = flags;
return true;
}
}
}