public static NativeOffer toNativeOffer(@NonNull Offer offer) { NativeOfferBuilder nativeOfferBuilder = (offer.getOfferType() == OfferType.EARN) ? new NativeEarnOfferBuilder(offer.getId()) : new NativeSpendOfferBuilder(offer.getId()); return nativeOfferBuilder.title(offer.getTitle()).description(offer.getDescription()).amount(offer.getAmount()) .image(offer.getImage()).build(); } }
@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()); }