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