예제 #1
0
        public void UrchinActivityParameterBuilder_GetParameter_For_ItemActivity_Returns_Correct_Optional_Values()
        {
            var activity = new TransactionItemActivity("code", "name", 1.23m, 4, "variation");

            var parameters = UrchinActivityParameterBuilder.GetParameters(activity).ToDictionary(k => k.Key, v => v.Value);

            Assert.AreEqual("variation", parameters["utmiva"]);
        }
예제 #2
0
        public void UrchinActivityParameterBuilder_GetParameter_For_ItemActivity_Returns_Correct_Utmt_Value()
        {
            var activity = new TransactionItemActivity("code", "name", 1.23m, 1);

            var results = UrchinActivityParameterBuilder.GetParameters(activity).ToDictionary(k => k.Key, v => v);

            CollectionAssert.Contains(results.Keys, "utmt");
            Assert.AreEqual("item", results["utmt"].Value);
        }
        public void ItemActivity_Constructor_With_All_Parameters_Sets_Correct_Properties()
        {
            var activity = new TransactionItemActivity("code", "name", 1.23m, 4, "variation");

            Assert.AreEqual("code", activity.Code);
            Assert.AreEqual("name", activity.Name);
            Assert.AreEqual(1.23m, activity.Price);
            Assert.AreEqual(4, activity.Quantity);
            Assert.AreEqual("variation", activity.Variation);
        }
예제 #4
0
        public void UrchinActivityParameterBuilder_GetParameter_For_ItemActivity_Returns_Correct_Keys()
        {
            var activity = new TransactionItemActivity("code", "name", 1.23m, 4, "variation");

            var results = UrchinActivityParameterBuilder.GetParameters(activity).ToDictionary(k => k.Key, v => v);

            var expectedKeys = new[] { "utmt", "utmipc", "utmipn", "utmipr", "utmiqt", "utmiva" };

            CollectionAssert.AreEquivalent(expectedKeys, results.Keys);
        }
예제 #5
0
        public void TransactionItemActivity_Constructor_With_Minimal_Parameters_Sets_Correct_Properties()
        {
            var activity = new TransactionItemActivity("code", "name", 1.23m, 1);

            Assert.AreEqual("code", activity.Code);
            Assert.AreEqual("name", activity.Name);
            Assert.AreEqual(1.23m, activity.Price);
            Assert.AreEqual(1, activity.Quantity);
            Assert.IsNull(activity.Variation);
        }
        /// <summary>
        /// Obtain the key/value pairs for a TransactionItemActivity.
        /// </summary>
        /// <param name="item">TransactionItemActivity to turn into key/value pairs.</param>
        /// <returns>Key/value pairs representing this TransactionItemActivity.</returns>
        internal static IEnumerable <KeyValuePair <string, string> > GetParameters(TransactionItemActivity item)
        {
            if (item.Transaction == null)
            {
                yield break;
            }

            yield return(KeyValuePair.Create("t", "item"));

            yield return(KeyValuePair.Create("ti", item.Transaction.OrderId));

            foreach (var parameter in GetCommonParameters(item))
            {
                yield return(parameter);
            }

            if (item.Price != Decimal.Zero)
            {
                yield return(KeyValuePair.Create("ip", item.Price.ToString("0.00", CultureInfo.InvariantCulture)));
            }

            if (item.Quantity != 0)
            {
                yield return(KeyValuePair.Create("iq", item.Quantity.ToString(CultureInfo.InvariantCulture)));
            }

            if (!String.IsNullOrWhiteSpace(item.Code))
            {
                yield return(KeyValuePair.Create("ic", item.Code));
            }

            if (!String.IsNullOrWhiteSpace(item.Name))
            {
                yield return(KeyValuePair.Create("in", item.Name));
            }

            if (!String.IsNullOrEmpty(item.Variation))
            {
                yield return(KeyValuePair.Create("iv", item.Variation));
            }

            if (!String.IsNullOrWhiteSpace(item.Transaction.Currency))
            {
                yield return(KeyValuePair.Create("cu", item.Transaction.Currency));
            }
        }
예제 #7
0
        public void MeasurementTracker_Track_Carries_Forward_Last_Transaction()
        {
            var actual  = new List <Uri>();
            var tracker = new MeasurementTracker(MeasurementTestHelpers.Configuration, MeasurementTestHelpers.CreateSessionManager(), MeasurementTestHelpers.CreateEnvironment(), actual.Add);

            var transaction = new TransactionActivity {
                OrderId = "123", Currency = "GBP"
            };

            tracker.Track(new MeasurementActivityEntry(transaction));

            var transactionItem = new TransactionItemActivity("ABC", "Unit Test", 1.23m, 4);

            tracker.Track(new MeasurementActivityEntry(transactionItem));

            Assert.AreEqual(transaction, transactionItem.Transaction);
            StringAssert.Contains(actual.Last().OriginalString, "ti=123");
        }
예제 #8
0
        /// <summary>
        /// Obtain the key/value pairs for a TransactionItemActivity.
        /// </summary>
        /// <param name="item">TransactionItemActivity to turn into key/value pairs.</param>
        /// <returns>Key/value pairs representing this TransactionItemActivity.</returns>
        internal static IEnumerable <KeyValuePair <string, string> > GetParameters(TransactionItemActivity item)
        {
            yield return(KeyValuePair.Create("utmt", "item"));

            yield return(KeyValuePair.Create("utmipc", item.Code));

            yield return(KeyValuePair.Create("utmipn", item.Name));

            yield return(KeyValuePair.Create("utmipr", item.Price.ToString("0.00", CultureInfo.InvariantCulture)));

            if (item.Quantity != 0)
            {
                yield return(KeyValuePair.Create("utmiqt", item.Quantity.ToString(CultureInfo.InvariantCulture)));
            }

            if (!String.IsNullOrEmpty(item.Variation))
            {
                yield return(KeyValuePair.Create("utmiva", item.Variation));
            }
        }
        public void MeasurementActivityParameterBuilder_GetParameter_For_TransactionItemActivity_Returns_Correct_Values()
        {
            var transaction = new TransactionActivity {
                OrderId = "567", Currency = "GBP"
            };
            var activity = new TransactionItemActivity("code", "name", 1.23m, 4096, "variation")
            {
                Transaction = transaction
            };
            var parameters = MeasurementActivityParameterBuilder.GetParameters(activity).ToDictionary(k => k.Key, v => v.Value);

            Assert.AreEqual(8, parameters.Keys.Count);
            Assert.AreEqual("item", parameters["t"]);

            Assert.AreEqual("567", parameters["ti"]);
            Assert.AreEqual("GBP", parameters["cu"]);

            Assert.AreEqual("code", parameters["ic"]);
            Assert.AreEqual("name", parameters["in"]);
            Assert.AreEqual("1.23", parameters["ip"]);
            Assert.AreEqual("4096", parameters["iq"]);
            Assert.AreEqual("variation", parameters["iv"]);
        }