Home | History | Annotate | Download | only in am
      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