1 package com.android.server.am; 2 3 import static org.mockito.Mockito.mock; 4 import static org.mockito.Mockito.spy; 5 import static org.mockito.Mockito.times; 6 import static org.mockito.Mockito.verify; 7 8 import android.app.IApplicationThread; 9 import android.app.servertransaction.ClientTransaction; 10 import android.os.Binder; 11 import android.platform.test.annotations.Presubmit; 12 import android.support.test.filters.SmallTest; 13 import android.support.test.runner.AndroidJUnit4; 14 15 import org.junit.Test; 16 import org.junit.runner.RunWith; 17 18 @RunWith(AndroidJUnit4.class) 19 @SmallTest 20 @Presubmit 21 public class ClientLifecycleManagerTests { 22 23 @Test 24 public void testScheduleAndRecycleBinderClientTransaction() throws Exception { 25 ClientTransaction item = spy(ClientTransaction.obtain(mock(IApplicationThread.class), 26 new Binder())); 27 28 ClientLifecycleManager clientLifecycleManager = new ClientLifecycleManager(); 29 clientLifecycleManager.scheduleTransaction(item); 30 31 verify(item, times(1)).recycle(); 32 } 33 34 @Test 35 public void testScheduleNoRecycleNonBinderClientTransaction() throws Exception { 36 ClientTransaction item = spy(ClientTransaction.obtain(mock(IApplicationThread.Stub.class), 37 new Binder())); 38 39 ClientLifecycleManager clientLifecycleManager = new ClientLifecycleManager(); 40 clientLifecycleManager.scheduleTransaction(item); 41 42 verify(item, times(0)).recycle(); 43 } 44 } 45