public NativeOfferBuilder amount(Integer amount) { nativeOffer.setAmount(amount); return this; }
public NativeOfferBuilder description(String description) { nativeOffer.setDescription(description); return this; }
public NativeOfferBuilder image(String image) { nativeOffer.setImage(image); return this; }
@Nullable public static Offer toOffer(@NonNull NativeOffer nativeOffer) { OfferType offerType; try { offerType = OfferType.fromValue(nativeOffer.getOfferType().getValue()); } catch (Throwable throwable) { offerType = null; } if (offerType != null) { return new Offer().id(nativeOffer.getId()) .offerType(offerType) .title(nativeOffer.getTitle()) .description(nativeOffer.getDescription()) .amount(nativeOffer.getAmount()) .image(nativeOffer.getImage()) .contentType(ContentTypeEnum.EXTERNAL); } else { return null; } }
@Override public boolean removeNativeOffer(@NonNull NativeOffer nativeOffer) { String offerId = nativeOffer.getId(); if (offerId != null) { Offer offer = OfferConverter.toOffer(nativeOffer); if (offer != null) { nativeOfferMap.remove(offerId); return nativeOfferList.remove(offer); } return false; } else { return false; } }
public NativeOfferBuilder title(String title) { nativeOffer.setTitle(title); return this; }
@Override public boolean addNativeOffer(@NonNull NativeOffer nativeOffer, boolean dismissOnTap) { String offerId = nativeOffer.getId(); if (offerId != null) { Offer offer = OfferConverter.toOffer(nativeOffer); if (offer != null) { nativeOfferMap.put(offerId, dismissOnTap); // Update existing int index = nativeOfferList.getOffers().indexOf(offer); if (index >= 0) { nativeOfferList.getOffers().set(index, offer); } else { // Add new nativeOfferList.addAtIndex(0, offer); } return true; } return false; } return false; }
@Override public void onChanged(NativeOfferClickEvent nativeOffer) { assertEquals("5", nativeOffer.getNativeOffer().getId()); assertFalse(nativeOffer.isDismissOnTap()); } };
@Test public void addNativeSpendOffer() throws Exception { List<Offer> newEarnOffers = new ArrayList<>(); List<Offer> newSpendOffers = new ArrayList<>(); NativeOffer nativeOffer = new NativeSpendOfferBuilder("1") .title("Native offer title") .description("Native offer desc") .amount(1000) .image("Native offer image").build(); offerRepository.addNativeOffer(nativeOffer, true); assertEquals(1, offerRepository.getCachedOfferList().getOffers().size()); assertEquals(nativeOffer.getId(), offerRepository.getCachedOfferList().getOffers().get(0).getId()); Offer offer = OfferConverter.toOffer(nativeOffer); assertTrue(offerRepository.shouldDismissOnTap(offer.getId())); // Update on second time, still the size is 1 with same offer offerRepository.addNativeOffer(nativeOffer, false); offer = OfferConverter.toOffer(nativeOffer); assertFalse(offerRepository.shouldDismissOnTap(offer.getId())); assertEquals(1, offerRepository.getCachedOfferList().getOffers().size()); assertEquals(nativeOffer.getId(), offerRepository.getCachedOfferList().getOffers().get(0).getId()); OfferListUtil.splitOffersByType(offerRepository.getCachedOfferList().getOffers(), newEarnOffers, newSpendOffers); assertEquals(1, newSpendOffers.size()); assertEquals(0, newEarnOffers.size()); }
@Test public void addNativeEarnOffer() throws Exception { List<Offer> newEarnOffers = new ArrayList<>(); List<Offer> newSpendOffers = new ArrayList<>(); NativeOffer nativeOffer = new NativeEarnOfferBuilder("2") .title("Native offer title") .description("Native offer desc") .amount(1000) .image("Native offer image").build(); offerRepository.addNativeOffer(nativeOffer, true); assertEquals(1, offerRepository.getCachedOfferList().getOffers().size()); assertEquals(nativeOffer.getId(), offerRepository.getCachedOfferList().getOffers().get(0).getId()); Offer offer = OfferConverter.toOffer(nativeOffer); assertTrue(offerRepository.shouldDismissOnTap(offer.getId())); // Update on second time, still the size is 1 with same offer offerRepository.addNativeOffer(nativeOffer, false); offer = OfferConverter.toOffer(nativeOffer); assertFalse(offerRepository.shouldDismissOnTap(offer.getId())); assertEquals(1, offerRepository.getCachedOfferList().getOffers().size()); assertEquals(nativeOffer.getId(), offerRepository.getCachedOfferList().getOffers().get(0).getId()); OfferListUtil.splitOffersByType(offerRepository.getCachedOfferList().getOffers(), newEarnOffers, newSpendOffers); assertEquals(0, newSpendOffers.size()); assertEquals(1, newEarnOffers.size()); }
@Test public void removeNativeSpendOffer() throws Exception { NativeOffer nativeOffer = new NativeSpendOfferBuilder("1") .title("Native offer title") .description("Native offer desc") .amount(1000) .image("Native offer image") .build(); offerRepository.addNativeOffer(nativeOffer, true); assertEquals(1, offerRepository.getCachedOfferList().getOffers().size()); assertEquals(nativeOffer.getId(), offerRepository.getCachedOfferList().getOffers().get(0).getId()); Offer offer = OfferConverter.toOffer(nativeOffer); assertTrue(offerRepository.shouldDismissOnTap(offer.getId())); offerRepository.removeNativeOffer(nativeOffer); assertEquals(0, offerRepository.getCachedOfferList().getOffers().size()); }