@Test public void testEmptyItems() throws Exception { EcommerceItems items = new EcommerceItems(); assertEquals("[]", items.toJson()); }
@OnClick(R.id.addEcommerceItemButton) void onAddEcommerceItemClicked(View view) { List<String> skus = Arrays.asList("00001", "00002", "00003", "00004"); List<String> names = Arrays.asList("Silly Putty", "Fishing Rod", "Rubber Boots", "Cool Ranch Doritos"); List<String> categories = Arrays.asList("Toys & Games", "Hunting & Fishing", "Footwear", "Grocery"); List<Integer> prices = Arrays.asList(449, 3495, 2450, 250); int index = cartItems % 4; int quantity = (cartItems / 4) + 1; items.addItem(new EcommerceItems.Item(skus.get(index)) .name(names.get(index)) .category(categories.get(index)) .price(prices.get(index)) .quantity(quantity)); cartItems++; }
@Test public void testRemoveAllItems() throws Exception { EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); items.clear(); assertEquals("[]", items.toJson()); }
@Test public void testRemoveItem() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); final EcommerceItems.Item item2 = new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3); items.addItem(item2); items.remove("fake_sku"); assertEquals("[[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]]", items.toJson()); items.remove(item2); assertEquals(new JSONArray().toString(), items.toJson()); }
@Test public void testTrackEcommerceCartUpdate() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); track().cartUpdate(50000).items(items).with(mTracker); verify(mTracker).track(mCaptor.capture()); assertEquals(mCaptor.getValue().get(QueryParams.GOAL_ID), "0"); assertEquals(mCaptor.getValue().get(QueryParams.REVENUE), "500.00"); String ecommerceItemsJson = mCaptor.getValue().get(QueryParams.ECOMMERCE_ITEMS); new JSONArray(ecommerceItemsJson); // will throw exception if not valid json assertTrue(ecommerceItemsJson.contains("[\"fake_sku\",\"fake_product\",\"fake_category\",\"2.00\",\"2\"]")); assertTrue(ecommerceItemsJson.contains("[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]")); }
@Test public void testAddItems() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); items.addItem(new EcommerceItems.Item("fake_sku_3")); String itemsJson = items.toJson(); assertTrue(itemsJson.contains("[\"fake_sku\",\"fake_product\",\"fake_category\",\"2.00\",\"2\"]")); assertTrue(itemsJson.contains("[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]")); assertTrue(itemsJson.contains("[\"fake_sku_3\"]")); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo); ButterKnife.bind(this); items = new EcommerceItems(); }
@Test public void testRemoveAllItems() throws Exception { EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); items.clear(); assertEquals("[]", items.toJson()); }
@Test public void testRemoveItem() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); final EcommerceItems.Item item2 = new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3); items.addItem(item2); items.remove("fake_sku"); assertEquals("[[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]]", items.toJson()); items.remove(item2); assertEquals(new JSONArray().toString(), items.toJson()); }
@Test public void testTrackEcommerceCartUpdate() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); track().cartUpdate(50000).items(items).with(mTracker); verify(mTracker).track(mCaptor.capture()); assertEquals(mCaptor.getValue().get(QueryParams.GOAL_ID), "0"); assertEquals(mCaptor.getValue().get(QueryParams.REVENUE), "500.00"); String ecommerceItemsJson = mCaptor.getValue().get(QueryParams.ECOMMERCE_ITEMS); new JSONArray(ecommerceItemsJson); // will throw exception if not valid json assertTrue(ecommerceItemsJson.contains("[\"fake_sku\",\"fake_product\",\"fake_category\",\"2.00\",\"2\"]")); assertTrue(ecommerceItemsJson.contains("[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]")); }
@Test public void testAddItems() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); items.addItem(new EcommerceItems.Item("fake_sku_3")); String itemsJson = items.toJson(); assertTrue(itemsJson.contains("[\"fake_sku\",\"fake_product\",\"fake_category\",\"2.00\",\"2\"]")); assertTrue(itemsJson.contains("[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]")); assertTrue(itemsJson.contains("[\"fake_sku_3\"]")); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo); ButterKnife.bind(this); items = new EcommerceItems(); }
@Test public void testEmptyItems() throws Exception { EcommerceItems items = new EcommerceItems(); assertEquals("[]", items.toJson()); }
@Test public void testTrackEcommerceOrder() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); track().order("orderId", 10020).subTotal(7002).tax(2000).shipping(1000).discount(0).items(items).with(mTracker); verify(mTracker).track(mCaptor.capture()); TrackMe tracked = mCaptor.getValue(); assertEquals(tracked.get(QueryParams.GOAL_ID), "0"); assertEquals(tracked.get(QueryParams.ORDER_ID), "orderId"); assertEquals(tracked.get(QueryParams.REVENUE), "100.20"); assertEquals(tracked.get(QueryParams.SUBTOTAL), "70.02"); assertEquals(tracked.get(QueryParams.TAX), "20.00"); assertEquals(tracked.get(QueryParams.SHIPPING), "10.00"); assertEquals(tracked.get(QueryParams.DISCOUNT), "0.00"); String ecommerceItemsJson = tracked.get(QueryParams.ECOMMERCE_ITEMS); new JSONArray(ecommerceItemsJson); // will throw exception if not valid json assertTrue(ecommerceItemsJson.contains("[\"fake_sku\",\"fake_product\",\"fake_category\",\"2.00\",\"2\"]")); assertTrue(ecommerceItemsJson.contains("[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]")); }
@OnClick(R.id.addEcommerceItemButton) void onAddEcommerceItemClicked(View view) { List<String> skus = Arrays.asList("00001", "00002", "00003", "00004"); List<String> names = Arrays.asList("Silly Putty", "Fishing Rod", "Rubber Boots", "Cool Ranch Doritos"); List<String> categories = Arrays.asList("Toys & Games", "Hunting & Fishing", "Footwear", "Grocery"); List<Integer> prices = Arrays.asList(449, 3495, 2450, 250); int index = cartItems % 4; int quantity = (cartItems / 4) + 1; items.addItem(new EcommerceItems.Item(skus.get(index)) .name(names.get(index)) .category(categories.get(index)) .price(prices.get(index)) .quantity(quantity)); cartItems++; }
@Override public TrackMe build() { if (mEcommerceItems == null) mEcommerceItems = new EcommerceItems(); return new TrackMe(getBaseTrackMe()) .set(QueryParams.GOAL_ID, 0) .set(QueryParams.REVENUE, CurrencyFormatter.priceString(mGrandTotal)) .set(QueryParams.ECOMMERCE_ITEMS, mEcommerceItems.toJson()); } }
@Test public void testTrackEcommerceOrder() throws Exception { Locale.setDefault(Locale.US); EcommerceItems items = new EcommerceItems(); items.addItem(new EcommerceItems.Item("fake_sku").name("fake_product").category("fake_category").price(200).quantity(2)); items.addItem(new EcommerceItems.Item("fake_sku_2").name("fake_product_2").category("fake_category_2").price(400).quantity(3)); track().order("orderId", 10020).subTotal(7002).tax(2000).shipping(1000).discount(0).items(items).with(mTracker); verify(mTracker).track(mCaptor.capture()); TrackMe tracked = mCaptor.getValue(); assertEquals(tracked.get(QueryParams.GOAL_ID), "0"); assertEquals(tracked.get(QueryParams.ORDER_ID), "orderId"); assertEquals(tracked.get(QueryParams.REVENUE), "100.20"); assertEquals(tracked.get(QueryParams.SUBTOTAL), "70.02"); assertEquals(tracked.get(QueryParams.TAX), "20.00"); assertEquals(tracked.get(QueryParams.SHIPPING), "10.00"); assertEquals(tracked.get(QueryParams.DISCOUNT), "0.00"); String ecommerceItemsJson = tracked.get(QueryParams.ECOMMERCE_ITEMS); new JSONArray(ecommerceItemsJson); // will throw exception if not valid json assertTrue(ecommerceItemsJson.contains("[\"fake_sku\",\"fake_product\",\"fake_category\",\"2.00\",\"2\"]")); assertTrue(ecommerceItemsJson.contains("[\"fake_sku_2\",\"fake_product_2\",\"fake_category_2\",\"4.00\",\"3\"]")); }
@Override public TrackMe build() { if (mEcommerceItems == null) mEcommerceItems = new EcommerceItems(); return new TrackMe(getBaseTrackMe()) .set(QueryParams.GOAL_ID, 0) .set(QueryParams.REVENUE, CurrencyFormatter.priceString(mGrandTotal)) .set(QueryParams.ECOMMERCE_ITEMS, mEcommerceItems.toJson()); } }
@Override public TrackMe build() { if (mEcommerceItems == null) mEcommerceItems = new EcommerceItems(); return new TrackMe(getBaseTrackMe()) .set(QueryParams.GOAL_ID, 0) .set(QueryParams.ORDER_ID, mOrderId) .set(QueryParams.REVENUE, CurrencyFormatter.priceString(mGrandTotal)) .set(QueryParams.ECOMMERCE_ITEMS, mEcommerceItems.toJson()) .set(QueryParams.SUBTOTAL, CurrencyFormatter.priceString(mSubTotal)) .set(QueryParams.TAX, CurrencyFormatter.priceString(mTax)) .set(QueryParams.SHIPPING, CurrencyFormatter.priceString(mShipping)) .set(QueryParams.DISCOUNT, CurrencyFormatter.priceString(mDiscount)); } }
@Override public TrackMe build() { if (mEcommerceItems == null) mEcommerceItems = new EcommerceItems(); return new TrackMe(getBaseTrackMe()) .set(QueryParams.GOAL_ID, 0) .set(QueryParams.ORDER_ID, mOrderId) .set(QueryParams.REVENUE, CurrencyFormatter.priceString(mGrandTotal)) .set(QueryParams.ECOMMERCE_ITEMS, mEcommerceItems.toJson()) .set(QueryParams.SUBTOTAL, CurrencyFormatter.priceString(mSubTotal)) .set(QueryParams.TAX, CurrencyFormatter.priceString(mTax)) .set(QueryParams.SHIPPING, CurrencyFormatter.priceString(mShipping)) .set(QueryParams.DISCOUNT, CurrencyFormatter.priceString(mDiscount)); } }