Skip to content

Commit

Permalink
remove odd parameters from admob ad revenue report
Browse files Browse the repository at this point in the history
feaf77d85af6d52b27dfc03dac47ff35cb76a1d0
  • Loading branch information
KondratyonokNikita committed Aug 20, 2024
1 parent c4a6d69 commit 91eaf0f
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.AdapterResponseInfo;
import com.google.android.gms.ads.ResponseInfo;
import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.nativead.NativeAd;
import com.google.android.gms.ads.rewarded.RewardedAd;
import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd;
import io.appmetrica.analytics.coreutils.internal.WrapUtils;
import io.appmetrica.analytics.modulesapi.internal.client.adrevenue.ModuleAdRevenue;
import io.appmetrica.analytics.modulesapi.internal.client.adrevenue.ModuleAdType;
Expand All @@ -24,33 +27,33 @@ public ModuleAdRevenue convertBanner(@NonNull AdValue adValue, @NonNull AdView a
);
}

public ModuleAdRevenue convertInterstitialAd(@NonNull AdValue adValue, @NonNull AdView adView) {
public ModuleAdRevenue convertInterstitialAd(@NonNull AdValue adValue, @NonNull InterstitialAd ad) {
return constructModuleAdRevenue(
adValue,
ModuleAdType.INTERSTITIAL,
adView.getResponseInfo(),
adView.getAdUnitId()
ad.getResponseInfo(),
ad.getAdUnitId()
);
}

public ModuleAdRevenue convertRewardedAd(@NonNull AdValue adValue, @NonNull AdView adView) {
public ModuleAdRevenue convertRewardedAd(@NonNull AdValue adValue, @NonNull RewardedAd ad) {
return constructModuleAdRevenue(
adValue,
ModuleAdType.REWARDED,
adView.getResponseInfo(),
adView.getAdUnitId()
ad.getResponseInfo(),
ad.getAdUnitId()
);
}

public ModuleAdRevenue convertRewardedInterstitialAd(
@NonNull AdValue adValue,
@NonNull AdView adView
@NonNull RewardedInterstitialAd ad
) {
return constructModuleAdRevenue(
adValue,
ModuleAdType.OTHER,
adView.getResponseInfo(),
adView.getAdUnitId()
ad.getResponseInfo(),
ad.getAdUnitId()
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import androidx.annotation.NonNull;
import com.google.android.gms.ads.AdValue;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.interstitial.InterstitialAd;
import io.appmetrica.analytics.adrevenue.admob.v23.impl.AdRevenueConverter;
import io.appmetrica.analytics.coreutils.internal.reflection.ReflectionUtils;
Expand All @@ -25,17 +24,16 @@ public boolean process(Object... values) {
boolean isArgumentsHasClasses = ReflectionUtils.isArgumentsOfClasses(
values,
AdValue.class,
AdView.class,
InterstitialAd.class
);
if (!isArgumentsHasClasses) {
return false;
}

AdValue adValue = (AdValue) values[0];
AdView adView = (AdView) values[1];
InterstitialAd ad = (InterstitialAd) values[1];

report(adRevenueConverter.convertInterstitialAd(adValue, adView));
report(adRevenueConverter.convertInterstitialAd(adValue, ad));
DebugLogger.INSTANCE.info(TAG, "AdRevenue was reported");
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import androidx.annotation.NonNull;
import com.google.android.gms.ads.AdValue;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.rewarded.RewardedAd;
import io.appmetrica.analytics.adrevenue.admob.v23.impl.AdRevenueConverter;
import io.appmetrica.analytics.coreutils.internal.reflection.ReflectionUtils;
Expand All @@ -25,17 +24,16 @@ public boolean process(Object... values) {
boolean isArgumentsHasClasses = ReflectionUtils.isArgumentsOfClasses(
values,
AdValue.class,
AdView.class,
RewardedAd.class
);
if (!isArgumentsHasClasses) {
return false;
}

AdValue adValue = (AdValue) values[0];
AdView adView = (AdView) values[1];
RewardedAd ad = (RewardedAd) values[1];

report(adRevenueConverter.convertRewardedAd(adValue, adView));
report(adRevenueConverter.convertRewardedAd(adValue, ad));
DebugLogger.INSTANCE.info(TAG, "AdRevenue was reported");
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import androidx.annotation.NonNull;
import com.google.android.gms.ads.AdValue;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd;
import io.appmetrica.analytics.adrevenue.admob.v23.impl.AdRevenueConverter;
import io.appmetrica.analytics.coreutils.internal.reflection.ReflectionUtils;
Expand All @@ -25,17 +24,16 @@ public boolean process(Object... values) {
boolean isArgumentsHasClasses = ReflectionUtils.isArgumentsOfClasses(
values,
AdValue.class,
AdView.class,
RewardedInterstitialAd.class
);
if (!isArgumentsHasClasses) {
return false;
}

AdValue adValue = (AdValue) values[0];
AdView adView = (AdView) values[1];
RewardedInterstitialAd ad = (RewardedInterstitialAd) values[1];

report(adRevenueConverter.convertRewardedInterstitialAd(adValue, adView));
report(adRevenueConverter.convertRewardedInterstitialAd(adValue, ad));
DebugLogger.INSTANCE.info(TAG, "AdRevenue was reported");
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.AdapterResponseInfo;
import com.google.android.gms.ads.ResponseInfo;
import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.nativead.NativeAd;
import com.google.android.gms.ads.rewarded.RewardedAd;
import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd;
import io.appmetrica.analytics.modulesapi.internal.client.adrevenue.ModuleAdRevenue;
import io.appmetrica.analytics.modulesapi.internal.client.adrevenue.ModuleAdType;
import io.appmetrica.analytics.testutils.CommonTest;
Expand Down Expand Up @@ -37,6 +40,12 @@ public class AdRevenueConverterTest extends CommonTest {
@Mock
private NativeAd nativeAd;
@Mock
private InterstitialAd interstitialAd;
@Mock
private RewardedAd rewardedAd;
@Mock
private RewardedInterstitialAd rewardedInterstitialAd;
@Mock
private ResponseInfo responseInfo;
@Mock
private AdapterResponseInfo adapterResponseInfo;
Expand All @@ -58,6 +67,15 @@ public void setUp() {

when(nativeAd.getResponseInfo()).thenReturn(responseInfo);

when(interstitialAd.getAdUnitId()).thenReturn(adUnitId);
when(interstitialAd.getResponseInfo()).thenReturn(responseInfo);

when(rewardedAd.getAdUnitId()).thenReturn(adUnitId);
when(rewardedAd.getResponseInfo()).thenReturn(responseInfo);

when(rewardedInterstitialAd.getAdUnitId()).thenReturn(adUnitId);
when(rewardedInterstitialAd.getResponseInfo()).thenReturn(responseInfo);

when(adapterResponseInfo.getAdapterClassName()).thenReturn(adNetwork);
when(adapterResponseInfo.getAdSourceInstanceId()).thenReturn(adPlacementId);
when(adapterResponseInfo.getAdSourceInstanceName()).thenReturn(adPlacementName);
Expand Down Expand Up @@ -123,7 +141,7 @@ public void convertBannerIfLoadedAdapterResponseInfoIsNull() {

@Test
public void convertInterstitialAd() {
ModuleAdRevenue adRevenue = adRevenueConverter.convertInterstitialAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertInterstitialAd(adValue, interstitialAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -141,9 +159,9 @@ public void convertInterstitialAd() {

@Test
public void convertInterstitialAdIfResponseInfoIsNull() {
when(adView.getResponseInfo()).thenReturn(null);
when(interstitialAd.getResponseInfo()).thenReturn(null);

ModuleAdRevenue adRevenue = adRevenueConverter.convertInterstitialAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertInterstitialAd(adValue, interstitialAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -163,7 +181,7 @@ public void convertInterstitialAdIfResponseInfoIsNull() {
public void convertInterstitialAdIfLoadedAdapterResponseInfoIsNull() {
when(responseInfo.getLoadedAdapterResponseInfo()).thenReturn(null);

ModuleAdRevenue adRevenue = adRevenueConverter.convertInterstitialAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertInterstitialAd(adValue, interstitialAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -181,7 +199,7 @@ public void convertInterstitialAdIfLoadedAdapterResponseInfoIsNull() {

@Test
public void convertRewardedAd() {
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedAd(adValue, rewardedAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -199,9 +217,9 @@ public void convertRewardedAd() {

@Test
public void convertRewardedAdIfResponseInfoIsNull() {
when(adView.getResponseInfo()).thenReturn(null);
when(rewardedAd.getResponseInfo()).thenReturn(null);

ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedAd(adValue, rewardedAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -221,7 +239,7 @@ public void convertRewardedAdIfResponseInfoIsNull() {
public void convertRewardedAdIfLoadedAdapterResponseInfoIsNull() {
when(responseInfo.getLoadedAdapterResponseInfo()).thenReturn(null);

ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedAd(adValue, rewardedAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -239,7 +257,7 @@ public void convertRewardedAdIfLoadedAdapterResponseInfoIsNull() {

@Test
public void convertRewardedInterstitialAd() {
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedInterstitialAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedInterstitialAd(adValue, rewardedInterstitialAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -257,9 +275,9 @@ public void convertRewardedInterstitialAd() {

@Test
public void convertRewardedInterstitialAdIfResponseInfoIsNull() {
when(adView.getResponseInfo()).thenReturn(null);
when(rewardedInterstitialAd.getResponseInfo()).thenReturn(null);

ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedInterstitialAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedInterstitialAd(adValue, rewardedInterstitialAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand All @@ -279,7 +297,7 @@ public void convertRewardedInterstitialAdIfResponseInfoIsNull() {
public void convertRewardedInterstitialAdIfLoadedAdapterResponseInfoIsNull() {
when(responseInfo.getLoadedAdapterResponseInfo()).thenReturn(null);

ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedInterstitialAd(adValue, adView);
ModuleAdRevenue adRevenue = adRevenueConverter.convertRewardedInterstitialAd(adValue, rewardedInterstitialAd);
ObjectPropertyAssertions(adRevenue)
.checkField("adRevenue", BigDecimal.valueOf(value))
.checkField("currency", Currency.getInstance(currencyCode))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package io.appmetrica.analytics.adrevenue.admob.v23.impl.processor;

import com.google.android.gms.ads.AdValue;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.interstitial.InterstitialAd;
import io.appmetrica.analytics.adrevenue.admob.v23.impl.AdRevenueConverter;
import io.appmetrica.analytics.coreutils.internal.logger.LoggerStorage;
Expand Down Expand Up @@ -38,13 +37,11 @@ public class InterstitialAdMobAdRevenueProcessorTest extends CommonTest {
private PublicLogger publicLogger;
@Mock
private ModuleAdRevenue adRevenue;
@Mock
private InterstitialAd interstitialAd;

@Mock
private AdValue adValue;
@Mock
private AdView adView;
private InterstitialAd interstitialAd;

@Rule
public MockedStaticRule<LoggerStorage> loggerStorageRule =
Expand All @@ -64,34 +61,32 @@ public void setUp() {
when(LoggerStorage.getMainPublicOrAnonymousLogger()).thenReturn(publicLogger);
when(clientContext.getModuleAdRevenueContext()).thenReturn(adRevenueContext);
when(adRevenueContext.getAdRevenueReporter()).thenReturn(adRevenueReporter);
when(converter.convertInterstitialAd(adValue, adView)).thenReturn(adRevenue);
when(converter.convertInterstitialAd(adValue, interstitialAd)).thenReturn(adRevenue);

when(ReflectionUtils.isArgumentsOfClasses(
new Object[]{adValue, adView, interstitialAd},
new Object[]{adValue, interstitialAd},
AdValue.class,
AdView.class,
InterstitialAd.class
)).thenReturn(true);
}

@Test
public void process() {
assertThat(processor.process(adValue, adView, interstitialAd)).isTrue();
verify(converter).convertInterstitialAd(adValue, adView);
assertThat(processor.process(adValue, interstitialAd)).isTrue();
verify(converter).convertInterstitialAd(adValue, interstitialAd);
verify(adRevenueReporter).reportAutoAdRevenue(adRevenue);
verify(publicLogger).info("Ad Revenue from AdMob was reported");
}

@Test
public void processWithWrongValues() {
when(ReflectionUtils.isArgumentsOfClasses(
new Object[]{adValue, adView, interstitialAd},
new Object[]{adValue, interstitialAd},
AdValue.class,
AdView.class,
InterstitialAd.class
)).thenReturn(false);

assertThat(processor.process(adValue, adView, interstitialAd)).isFalse();
assertThat(processor.process(adValue, interstitialAd)).isFalse();
verifyNoInteractions(converter, adRevenueReporter, publicLogger);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package io.appmetrica.analytics.adrevenue.admob.v23.impl.processor;

import com.google.android.gms.ads.AdValue;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.rewarded.RewardedAd;
import io.appmetrica.analytics.adrevenue.admob.v23.impl.AdRevenueConverter;
import io.appmetrica.analytics.coreutils.internal.logger.LoggerStorage;
Expand Down Expand Up @@ -38,13 +37,11 @@ public class RewardedAdMobAdRevenueProcessorTest extends CommonTest {
private PublicLogger publicLogger;
@Mock
private ModuleAdRevenue adRevenue;
@Mock
private RewardedAd rewardedAd;

@Mock
private AdValue adValue;
@Mock
private AdView adView;
private RewardedAd rewardedAd;

@Rule
public MockedStaticRule<LoggerStorage> loggerStorageRule =
Expand All @@ -64,34 +61,32 @@ public void setUp() {
when(LoggerStorage.getMainPublicOrAnonymousLogger()).thenReturn(publicLogger);
when(clientContext.getModuleAdRevenueContext()).thenReturn(adRevenueContext);
when(adRevenueContext.getAdRevenueReporter()).thenReturn(adRevenueReporter);
when(converter.convertRewardedAd(adValue, adView)).thenReturn(adRevenue);
when(converter.convertRewardedAd(adValue, rewardedAd)).thenReturn(adRevenue);

when(ReflectionUtils.isArgumentsOfClasses(
new Object[]{adValue, adView, rewardedAd},
new Object[]{adValue, rewardedAd},
AdValue.class,
AdView.class,
RewardedAd.class
)).thenReturn(true);
}

@Test
public void process() {
assertThat(processor.process(adValue, adView, rewardedAd)).isTrue();
verify(converter).convertRewardedAd(adValue, adView);
assertThat(processor.process(adValue, rewardedAd)).isTrue();
verify(converter).convertRewardedAd(adValue, rewardedAd);
verify(adRevenueReporter).reportAutoAdRevenue(adRevenue);
verify(publicLogger).info("Ad Revenue from AdMob was reported");
}

@Test
public void processWithWrongNumberOfValues() {
when(ReflectionUtils.isArgumentsOfClasses(
new Object[]{adValue, adView, rewardedAd},
new Object[]{adValue, rewardedAd},
AdValue.class,
AdView.class,
RewardedAd.class
)).thenReturn(false);

assertThat(processor.process(adValue, adView, rewardedAd)).isFalse();
assertThat(processor.process(adValue, rewardedAd)).isFalse();
verifyNoInteractions(converter, adRevenueReporter, publicLogger);
}
}
Loading

0 comments on commit 91eaf0f

Please sign in to comment.