public void AddAndAggregateWithDupsWorksFineWithDouble()
        {
            var telemetryDataCollector = new TestableTelemetryDataCollector(true);

            telemetryDataCollector.AddAndAggregate("Property", 1.1);
            telemetryDataCollector.AddAndAggregate("Property", 1.1);

            Assert.IsTrue((double)telemetryDataCollector.Properties["Property"] == 2.2);
        }
        public void AddOrUpdateWithDupsWorksFine()
        {
            var telemetryDataCollector = new TestableTelemetryDataCollector(true);

            telemetryDataCollector.AddOrUpdate("Property", "Value");
            Assert.IsTrue(telemetryDataCollector.Properties["Property"].Equals("Value"));

            telemetryDataCollector.AddOrUpdate("Property", () => "Someothervalue");
            Assert.IsTrue(telemetryDataCollector.Properties["Property"].Equals("Someothervalue"));
        }
        public void WillNotCollectTelemetryWhenDisabled()
        {
            var telemetryDataCollector = new TestableTelemetryDataCollector(false);

            var error = new Exception();

            telemetryDataCollector.AddFailure(error);
            Assert.AreEqual(((ConcurrentBag <Exception>)telemetryDataCollector.Properties["Failures"]).Count, 0);

            telemetryDataCollector.AddAndAggregate("Property", 1.1);
            telemetryDataCollector.AddAndAggregate("Property", () => 1.1);

            telemetryDataCollector.AddOrUpdate("Property", 1.1);
            telemetryDataCollector.AddOrUpdate("Property", () => 1.1);

            Assert.ThrowsException <KeyNotFoundException>(() => telemetryDataCollector.Properties["Property"]);
        }
        public void AddFailureWorksFine()
        {
            var telemetryDataCollector = new TestableTelemetryDataCollector(true);

            Assert.AreEqual(((ConcurrentBag <Exception>)telemetryDataCollector.Properties["Failures"]).Count, 0);

            var error = new Exception();

            telemetryDataCollector.AddFailure(error);
            telemetryDataCollector.AddFailure(error);

            var enumerator = ((ConcurrentBag <Exception>)telemetryDataCollector.Properties["Failures"]).GetEnumerator();

            enumerator.MoveNext();

            Assert.AreEqual(((ConcurrentBag <Exception>)telemetryDataCollector.Properties["Failures"]).Count, 2);
            Assert.AreEqual(enumerator.Current, error);
        }
        public void AddAndAggregateWithDupsWorksFine()
        {
            var telemetryDataCollector = new TestableTelemetryDataCollector(true);

            telemetryDataCollector.AddAndAggregate("Property", "Value");
            telemetryDataCollector.AddAndAggregate("Property", "Someothervalue");

            Assert.IsTrue(telemetryDataCollector.Properties["Property"].Equals("Someothervalue"));

            telemetryDataCollector.AddAndAggregate("Property1", (new[] { "Value" }).ToList());
            telemetryDataCollector.AddAndAggregate("Property1", (new[] { "Someother" }).ToList());

            Assert.IsTrue(((List <string>)telemetryDataCollector.Properties["Property1"]).Count == 2);

            telemetryDataCollector.AddAndAggregate("Property1", "Someother1");
            Assert.IsTrue(((List <string>)telemetryDataCollector.Properties["Property1"]).Count == 3);

            telemetryDataCollector.AddAndAggregate("Property1", () => "Someother2");
            Assert.IsTrue(((List <string>)telemetryDataCollector.Properties["Property1"]).Count == 4);
        }