|  | 
| 2 | 2 | 
 | 
| 3 | 3 | import static org.junit.Assert.assertFalse; | 
| 4 | 4 | import static org.junit.Assert.assertTrue; | 
| 5 |  | -import static org.mockito.ArgumentMatchers.any; | 
| 6 |  | -import static org.mockito.ArgumentMatchers.anyString; | 
| 7 | 5 | import static org.mockito.Mockito.mock; | 
| 8 |  | -import static org.mockito.Mockito.mockStatic; | 
| 9 | 6 | import static org.mockito.Mockito.times; | 
| 10 | 7 | import static org.mockito.Mockito.verify; | 
| 11 | 8 | import static org.mockito.Mockito.when; | 
| 12 | 9 | 
 | 
| 13 | 10 | import android.app.Activity; | 
| 14 | 11 | import android.app.Application; | 
| 15 |  | -import android.content.Context; | 
| 16 | 12 | 
 | 
| 17 |  | -import com.d4rk.androidtutorials.java.ads.AdUtils; | 
| 18 | 13 | import com.d4rk.androidtutorials.java.ads.managers.AppOpenAd.OnShowAdCompleteListener; | 
| 19 |  | -import com.google.android.gms.ads.AdRequest; | 
| 20 | 14 | import com.google.android.gms.ads.FullScreenContentCallback; | 
| 21 |  | -import com.google.android.gms.ads.appopen.AppOpenAd.AppOpenAdLoadCallback; | 
| 22 | 15 | 
 | 
| 23 | 16 | import org.junit.Before; | 
| 24 | 17 | import org.junit.Test; | 
| 25 | 18 | import org.mockito.ArgumentCaptor; | 
| 26 |  | -import org.mockito.MockedStatic; | 
| 27 | 19 | 
 | 
| 28 | 20 | import java.lang.reflect.Constructor; | 
| 29 | 21 | import java.lang.reflect.Field; | 
| @@ -77,41 +69,6 @@ public void isAdAvailable_returnsTrueWhenAdFresh() throws Exception { | 
| 77 | 69 |         assertTrue(invokeIsAdAvailable()); | 
| 78 | 70 |     } | 
| 79 | 71 | 
 | 
| 80 |  | -    @Test | 
| 81 |  | -    public void showAdIfAvailable_withoutAd_loadsNewAd() throws Exception { | 
| 82 |  | -        Activity activity = mock(Activity.class); | 
| 83 |  | -        OnShowAdCompleteListener listener = mock(OnShowAdCompleteListener.class); | 
| 84 |  | - | 
| 85 |  | -        try (MockedStatic<AdUtils> adUtils = mockStatic(AdUtils.class); | 
| 86 |  | -             MockedStatic<com.google.android.gms.ads.appopen.AppOpenAd> appOpenAdStatic = | 
| 87 |  | -                     mockStatic(com.google.android.gms.ads.appopen.AppOpenAd.class)) { | 
| 88 |  | -            com.google.android.gms.ads.appopen.AppOpenAd loadedAd = mock(com.google.android.gms.ads.appopen.AppOpenAd.class); | 
| 89 |  | - | 
| 90 |  | -            appOpenAdStatic | 
| 91 |  | -                    .when(() -> com.google.android.gms.ads.appopen.AppOpenAd.load( | 
| 92 |  | -                            any(Context.class), | 
| 93 |  | -                            anyString(), | 
| 94 |  | -                            any(AdRequest.class), | 
| 95 |  | -                            any(AppOpenAdLoadCallback.class))) | 
| 96 |  | -                    .thenAnswer(invocation -> { | 
| 97 |  | -                        AppOpenAdLoadCallback callback = invocation.getArgument(3); | 
| 98 |  | -                        callback.onAdLoaded(loadedAd); | 
| 99 |  | -                        return null; | 
| 100 |  | -                    }); | 
| 101 |  | - | 
| 102 |  | -            invokeShowAdIfAvailable(activity, listener); | 
| 103 |  | - | 
| 104 |  | -            adUtils.verify(() -> AdUtils.initialize(any(Context.class))); | 
| 105 |  | -            appOpenAdStatic.verify(() -> com.google.android.gms.ads.appopen.AppOpenAd.load( | 
| 106 |  | -                    any(Context.class), | 
| 107 |  | -                    anyString(), | 
| 108 |  | -                    any(AdRequest.class), | 
| 109 |  | -                    any(AppOpenAdLoadCallback.class))); | 
| 110 |  | -        } | 
| 111 |  | - | 
| 112 |  | -        verify(listener, times(1)).onShowAdComplete(); | 
| 113 |  | -    } | 
| 114 |  | - | 
| 115 | 72 |     @Test | 
| 116 | 73 |     public void showAdIfAvailable_withAd_doesNotShowTwiceWhileShowing() throws Exception { | 
| 117 | 74 |         Activity activity = mock(Activity.class); | 
|  | 
0 commit comments