1414
1515package com.google.ads.mediation.bigo
1616
17+ import android.content.Context
18+ import androidx.core.os.bundleOf
19+ import androidx.test.core.app.ApplicationProvider
1720import androidx.test.ext.junit.runners.AndroidJUnit4
21+ import com.google.ads.mediation.adaptertestkit.AdapterTestKitConstants.TEST_APP_ID
1822import com.google.ads.mediation.adaptertestkit.assertGetSdkVersion
1923import com.google.ads.mediation.adaptertestkit.assertGetVersionInfo
24+ import com.google.ads.mediation.bigo.BigoMediationAdapter.Companion.APP_ID_KEY
25+ import com.google.ads.mediation.bigo.BigoMediationAdapter.Companion.ERROR_MSG_MISSING_APP_ID
26+ import com.google.android.gms.ads.AdFormat
27+ import com.google.android.gms.ads.mediation.InitializationCompleteCallback
28+ import com.google.android.gms.ads.mediation.MediationConfiguration
29+ import org.junit.After
2030import org.junit.Before
2131import org.junit.Test
2232import org.junit.runner.RunWith
33+ import org.mockito.MockedStatic
34+ import org.mockito.Mockito.mockStatic
35+ import org.mockito.kotlin.any
36+ import org.mockito.kotlin.argumentCaptor
37+ import org.mockito.kotlin.eq
38+ import org.mockito.kotlin.mock
39+ import org.mockito.kotlin.verify
40+ import sg.bigo.ads.BigoAdSdk
2341
2442@RunWith(AndroidJUnit4 ::class )
2543class BigoMediationAdapterTest {
2644 // Subject of testing
2745 private lateinit var adapter: BigoMediationAdapter
46+ private lateinit var mockBigoSdk: MockedStatic <BigoAdSdk >
47+
48+ private val context = ApplicationProvider .getApplicationContext<Context >()
49+ private val mockInitializationCallback: InitializationCompleteCallback = mock()
2850
2951 @Before
3052 fun setUp () {
3153 adapter = BigoMediationAdapter ()
54+ mockBigoSdk = mockStatic(BigoAdSdk ::class .java)
55+ }
56+
57+ @After
58+ fun tearDown () {
59+ mockBigoSdk.close()
3260 }
3361
3462 // region Version tests
@@ -48,5 +76,50 @@ class BigoMediationAdapterTest {
4876
4977 // endregion
5078
51- // TODO: Add tests for the methods that are implemented in the adapter.
79+ // region Initialize tests
80+ @Test
81+ fun initialize_withEmptyConfiguration_invokesOnInitializationFailed () {
82+ adapter.initialize(context, mockInitializationCallback, mediationConfigurations = listOf ())
83+
84+ verify(mockInitializationCallback).onInitializationFailed(eq(ERROR_MSG_MISSING_APP_ID ))
85+ }
86+
87+ @Test
88+ fun initialize_withoutAnySourceId_invokesOnInitializationFailed () {
89+ val mediationConfiguration =
90+ MediationConfiguration (AdFormat .BANNER , /* serverParameters= */ bundleOf())
91+
92+ adapter.initialize(context, mockInitializationCallback, listOf (mediationConfiguration))
93+
94+ verify(mockInitializationCallback).onInitializationFailed(eq(ERROR_MSG_MISSING_APP_ID ))
95+ }
96+
97+ @Test
98+ fun initialize_withEmptySourceId_invokesOnInitializationFailed () {
99+ val mediationConfiguration =
100+ MediationConfiguration (AdFormat .BANNER , /* serverParameters= */ bundleOf(APP_ID_KEY to " " ))
101+
102+ adapter.initialize(context, mockInitializationCallback, listOf (mediationConfiguration))
103+
104+ verify(mockInitializationCallback).onInitializationFailed(eq(ERROR_MSG_MISSING_APP_ID ))
105+ }
106+
107+ @Test
108+ fun initialize_invokesOnInitializationSucceeded () {
109+ val mediationConfiguration =
110+ MediationConfiguration (
111+ AdFormat .BANNER ,
112+ /* serverParameters= */ bundleOf(APP_ID_KEY to TEST_APP_ID ),
113+ )
114+ val callbackCaptor = argumentCaptor<BigoAdSdk .InitListener >()
115+
116+ adapter.initialize(context, mockInitializationCallback, listOf (mediationConfiguration))
117+
118+ mockBigoSdk.verify { BigoAdSdk .initialize(eq(context), any(), callbackCaptor.capture()) }
119+ callbackCaptor.firstValue.onInitialized()
120+ verify(mockInitializationCallback).onInitializationSucceeded()
121+ }
122+
123+ // endregion
124+
52125}
0 commit comments