public void testInitEcommerceTransactionItem()
        {
            var eti = new EcommerceTransactionItem()
                      .SetSku("sku")
                      .SetPrice(20.1)
                      .SetQuantity(5)
                      .SetName("name")
                      .SetCategory("category")
                      .SetTrueTimestamp(123456789123)
                      .Build();

            eti.SetItemId("itemId");
            eti.SetCurrency("AUD");

            Assert.IsNotNull(eti);
            Assert.AreEqual(Constants.EVENT_ECOMM_ITEM, eti.GetPayload().Payload[Constants.EVENT]);
            Assert.AreEqual("itemId", eti.GetPayload().Payload[Constants.TI_ITEM_ID]);
            Assert.AreEqual("sku", eti.GetPayload().Payload[Constants.TI_ITEM_SKU]);
            Assert.AreEqual("name", eti.GetPayload().Payload[Constants.TI_ITEM_NAME]);
            Assert.AreEqual("category", eti.GetPayload().Payload[Constants.TI_ITEM_CATEGORY]);
            Assert.AreEqual("20.10", eti.GetPayload().Payload[Constants.TI_ITEM_PRICE]);
            Assert.AreEqual("5", eti.GetPayload().Payload[Constants.TI_ITEM_QUANTITY]);
            Assert.AreEqual("AUD", eti.GetPayload().Payload[Constants.TI_ITEM_CURRENCY]);

            Assert.IsNotNull(eti.GetContexts());
            Assert.IsTrue(eti.GetPayload().Payload.ContainsKey(Constants.EID));
            Assert.IsTrue(eti.GetPayload().Payload.ContainsKey(Constants.TIMESTAMP));
            Assert.IsTrue(eti.GetPayload().Payload.ContainsKey(Constants.TRUE_TIMESTAMP));
        }
        public void TestInitException()
        {
            EcommerceTransactionItem eti = null;

            try {
                eti = new EcommerceTransactionItem().Build();
            } catch (Exception e) {
                Assert.AreEqual("Sku cannot be null or empty.", e.Message);
            }
            Assert.IsNull(eti);

            try {
                eti = new EcommerceTransactionItem().SetSku("sku").Build();
            } catch (Exception e) {
                Assert.AreEqual("Price cannot be null.", e.Message);
            }
            Assert.IsNull(eti);

            try {
                eti = new EcommerceTransactionItem().SetSku("sku").SetPrice(10.78).Build();
            } catch (Exception e) {
                Assert.AreEqual("Quantity cannot be null.", e.Message);
            }
            Assert.IsNull(eti);
        }
        public void TestInitMinimal()
        {
            EcommerceTransactionItem eti = new EcommerceTransactionItem().SetSku("sku").SetPrice(10.2).SetQuantity(1).Build();

            Assert.NotNull(eti);

            Dictionary <string, object> payload = eti.GetPayload().GetDictionary();

            Assert.AreEqual(6, payload.Count);
            Assert.AreEqual("ti", payload [Constants.EVENT]);
            Assert.AreEqual("sku", payload [Constants.TI_ITEM_SKU]);
            Assert.AreEqual("10.20", payload [Constants.TI_ITEM_PRICE]);
            Assert.AreEqual("1", payload [Constants.TI_ITEM_QUANTITY]);
        }
コード例 #4
0
        /// <summary>
        /// Tracks an example ecommerce transaction with two items
        /// </summary>
        public static void TrackEcommerceTransaction()
        {
            var item1 = new EcommerceTransactionItem().SetSku("pbz0026").SetPrice(20).SetQuantity(1).Build();
            var item2 = new EcommerceTransactionItem().SetSku("pbz0038").SetPrice(15).SetQuantity(1).SetName("shirt").SetCategory("clothing").Build();
            var items = new List <EcommerceTransactionItem> {
                item1, item2
            };

            Instance.Track(new EcommerceTransaction()
                           .SetOrderId("6a8078be")
                           .SetTotalValue(35)
                           .SetAffiliation("affiliation")
                           .SetTaxValue(3)
                           .SetShipping(0)
                           .SetCity("Phoenix")
                           .SetState("Arizona")
                           .SetCountry("US")
                           .SetCurrency("USD")
                           .SetItems(items)
                           .Build());
            SessionMadeCount += 3;
        }
コード例 #5
0
        private bool ensureEcommerceTransactionWorksGet(Tracker t, MockGet g)
        {
            var hat   = new EcommerceTransactionItem().SetSku("pbz0026").SetPrice(20).SetQuantity(1).Build();
            var shirt = new EcommerceTransactionItem().SetSku("pbz0038").SetPrice(15).SetQuantity(1).SetName("shirt").SetCategory("clothing").Build();
            var items = new List <EcommerceTransactionItem> {
                hat, shirt
            };

            t.Track(new EcommerceTransaction()
                    .SetOrderId("6a8078be")
                    .SetTotalValue(35)
                    .SetAffiliation("affiliation")
                    .SetTaxValue(3)
                    .SetShipping(0)
                    .SetCity("Phoenix")
                    .SetState("Arizona")
                    .SetCountry("US")
                    .SetCurrency("USD")
                    .SetItems(items)
                    .Build());
            t.Flush();

            // other events may exist - lets find our best guesses for each

            var transactionActual = (from item in g.Queries
                                     where item.Contains("Phoenix")
                                     select item).ToList()[0];

            var hatActual = (from item in g.Queries
                             where item.Contains("pbz0026")
                             select item).ToList()[0];

            var shirtActual = (from item in g.Queries
                               where item.Contains("pbz0038")
                               select item).ToList()[0];

            var expectedTransaction = new Dictionary <string, string>
            {
                { "e", "tr" },
                { "tr_id", "6a8078be" },
                { "tr_tt", "35.00" },
                { "tr_af", "affiliation" },
                { "tr_tx", "3.00" },
                { "tr_sh", "0.00" },
                { "tr_ci", "Phoenix" },
                { "tr_st", "Arizona" },
                { "tr_co", "US" },
                { "tr_cu", "USD" }
            };

            assertQueryContainsDefaults(transactionActual);
            assertQueryContainsAll(transactionActual, expectedTransaction);

            var expectedHat = new Dictionary <string, string>
            {
                { "e", "ti" },
                { "ti_id", "6a8078be" },
                { "ti_sk", "pbz0026" },
                { "ti_pr", "20.00" },
                { "ti_qu", "1" },
                { "ti_cu", "USD" }
            };

            assertQueryContainsDefaults(hatActual);
            assertQueryContainsAll(hatActual, expectedHat);

            var expectedShirt = new Dictionary <string, string>
            {
                { "e", "ti" },
                { "ti_id", "6a8078be" },
                { "ti_sk", "pbz0038" },
                { "ti_nm", "shirt" },
                { "ti_ca", "clothing" },
                { "ti_pr", "15.00" },
                { "ti_qu", "1" },
                { "ti_cu", "USD" },
            };

            assertQueryContainsDefaults(shirtActual);
            assertQueryContainsAll(shirtActual, expectedShirt);

            return(true);
        }