1 package com.android.systemui.fragments
2 
3 import android.app.Fragment
4 import android.os.Looper
5 import androidx.test.ext.junit.runners.AndroidJUnit4
6 import androidx.test.filters.SmallTest
7 import com.android.systemui.SysuiTestCase
8 import com.android.systemui.dump.DumpManager
9 import com.android.systemui.util.mockito.mock
10 import com.google.common.truth.Truth.assertThat
11 import org.junit.Before
12 import org.junit.Test
13 import org.junit.runner.RunWith
14 
15 @SmallTest
16 @RunWith(AndroidJUnit4::class)
17 class FragmentServiceTest : SysuiTestCase() {
18     private val fragmentHostManagerFactory: FragmentHostManager.Factory = mock()
19 
20     private lateinit var fragmentService: FragmentService
21 
22     @Before
setUpnull23     fun setUp() {
24         if (Looper.myLooper() == null) {
25             Looper.prepare()
26         }
27 
28         fragmentService = FragmentService(fragmentHostManagerFactory, mock(), DumpManager())
29     }
30 
31     @Test
addFragmentInstantiationProvider_objectHasNoFragmentMethods_nothingAddednull32     fun addFragmentInstantiationProvider_objectHasNoFragmentMethods_nothingAdded() {
33         fragmentService.addFragmentInstantiationProvider(TestFragment::class.java) {
34             TestFragment()
35         }
36 
37         assertThat(fragmentService.injectionMap).hasSize(1)
38     }
39 
40     @Test
addFragmentInstantiationProvider_objectFragmentMethodsAlreadyProvided_nothingAddednull41     fun addFragmentInstantiationProvider_objectFragmentMethodsAlreadyProvided_nothingAdded() {
42         fragmentService.addFragmentInstantiationProvider(TestFragment::class.java) {
43             TestFragment()
44         }
45         fragmentService.addFragmentInstantiationProvider(TestFragment::class.java) {
46             TestFragment()
47         }
48 
49         assertThat(fragmentService.injectionMap).hasSize(1)
50     }
51 
52     class TestFragment : Fragment()
53 }
54