Пример #1
0
        /// <summary>
        /// Encode a TimedEventActivity using Utme escaping.
        /// </summary>
        /// <param name="timedEventActivity">TimedEventActivity being encoded.</param>
        /// <returns>Encoded set of values marked with prefix.</returns>
        public static string Encode(TimedEventActivity timedEventActivity)
        {
            var roundedTime = timedEventActivity.Time.TotalMilliseconds / 10 * 10;
            var result      = String.Join("*", new[] { timedEventActivity.Variable, timedEventActivity.Category, roundedTime.ToString(CultureInfo.InvariantCulture), timedEventActivity.Label });

            return("14(90!" + result + ")(90!" + timedEventActivity.Time.TotalMilliseconds.ToString(CultureInfo.InvariantCulture) + ")");
        }
        /// <summary>
        /// Obtain the key/value pairs for a TimedEventActivity.
        /// </summary>
        /// <param name="timedEvent">TimedEventActivity to turn into key/value pairs.</param>
        /// <returns>Key/value pairs representing this TimedEventActivity.</returns>
        internal static IEnumerable <KeyValuePair <string, string> > GetParameters(TimedEventActivity timedEvent)
        {
            yield return(KeyValuePair.Create("t", "timing"));

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

            if (!String.IsNullOrWhiteSpace(timedEvent.Category))
            {
                yield return(KeyValuePair.Create("utc", timedEvent.Category));
            }

            if (!String.IsNullOrWhiteSpace(timedEvent.Variable))
            {
                yield return(KeyValuePair.Create("utv", timedEvent.Variable));
            }

            if (!String.IsNullOrWhiteSpace(timedEvent.Label))
            {
                yield return(KeyValuePair.Create("utl", timedEvent.Label));
            }

            yield return(KeyValuePair.Create("utt", timedEvent.Time.TotalMilliseconds.ToString("0", CultureInfo.InvariantCulture)));
        }
Пример #3
0
        public void UrchinActivityParameterBuilder_GetParameter_For_TimedEventActivity_Returns_Correct_Utmt_Value()
        {
            var activity = new TimedEventActivity("category", "variable", TimeSpan.Zero);

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

            CollectionAssert.Contains(results.Keys, "utmt");
            Assert.AreEqual("event", results["utmt"].Value);
        }
Пример #4
0
        public void TimedEventActivity_Constructor_With_All_Parameters_Sets_Correct_Properties()
        {
            var activity = new TimedEventActivity("category", "variable", TimeSpan.FromSeconds(1.5), "label");

            Assert.AreEqual("category", activity.Category);
            Assert.AreEqual("variable", activity.Variable);
            Assert.AreEqual(TimeSpan.FromSeconds(1.5), activity.Time);
            Assert.AreEqual("label", activity.Label);
        }
Пример #5
0
        public void UrchinActivityParameterBuilder_GetParameter_For_TimedEventActivity_Returns_Correct_Keys()
        {
            var activity = new TimedEventActivity("category", "variable", TimeSpan.FromSeconds(1.5), "label");

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

            var expectedKeys = new[] { "utmt", "utme" };

            CollectionAssert.AreEquivalent(expectedKeys, results.Keys);
        }
        public void MeasurementActivityParameterBuilder_GetParameter_For_TimedEventActivity_Returns_Correct_Values()
        {
            var activity = new TimedEventActivity("cateogry", "variable", TimeSpan.FromMilliseconds(12345), "label");

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

            Assert.AreEqual(5, parameters.Keys.Count);
            Assert.AreEqual("timing", parameters["t"]);
            Assert.AreEqual("variable", parameters["utv"]);
            Assert.AreEqual("12345", parameters["utt"]);
            Assert.AreEqual("label", parameters["utl"]);
        }
Пример #7
0
        /// <summary>
        /// Obtain the key/value pairs for a TimedEventActivity.
        /// </summary>
        /// <param name="timedEvent">TimedEventActivity to turn into key/value pairs.</param>
        /// <returns>Key/value pairs representing this TimedEventActivity.</returns>
        internal static IEnumerable <KeyValuePair <string, string> > GetParameters(TimedEventActivity timedEvent)
        {
            yield return(KeyValuePair.Create("utmt", "event"));

            yield return(KeyValuePair.Create("utme", UtmeEncoder.Encode(timedEvent)));
        }