Example #1
0
        public void ConnectionStringOverridesConfigurationFile()
        {
            const string aiConfiguration = @"
                <?xml version=""1.0"" encoding=""utf-8""?>
                <ApplicationInsights xmlns=""http://schemas.microsoft.com/ApplicationInsights/2013/Settings"">
                    <InstrumentationKey>c8da242c-9f2d-45ab-913c-c9953516e9c2</InstrumentationKey>
                    <TelemetryChannel Type=""Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel""/>
                </ApplicationInsights>
            ";

            var healthReporterMock = new Mock <IHealthReporter>();
            var telemetry          = new TraceTelemetry();

            using (var configFile = new TemporaryFile())
            {
                configFile.Write(aiConfiguration);
                var config = new ApplicationInsightsOutputConfiguration();
                config.ConnectionString      = "InstrumentationKey=d0198460-ce4a-4efa-9e17-3edef2b40f15";
                config.ConfigurationFilePath = configFile.FilePath;

                var output = new ApplicationInsightsOutput(config, healthReporterMock.Object);

                VerifyNoErrorsOrWarnings(healthReporterMock);

                output.telemetryClient.InitializeInstrumentationKey(telemetry);
            }

            Assert.Equal("d0198460-ce4a-4efa-9e17-3edef2b40f15", telemetry.Context.InstrumentationKey, StringComparer.OrdinalIgnoreCase);
        }
Example #2
0
        public void InvalidConfigurationResultsInAnError()
        {
            var healthReporterMock = new Mock <IHealthReporter>();
            var config             = new ApplicationInsightsOutputConfiguration();
            var output             = new ApplicationInsightsOutput(config, healthReporterMock.Object);

            healthReporterMock.Verify(
                hr => hr.ReportWarning(
                    It.IsRegex("invalid configuration"),
                    It.Is <string>(ctx => string.Equals(ctx, EventFlowContextIdentifiers.Output, StringComparison.Ordinal))),
                Times.Exactly(1));
        }
Example #3
0
        public void InstrumentationKeyOverridesConnectionString()
        {
            var healthReporterMock = new Mock <IHealthReporter>();
            var config             = new ApplicationInsightsOutputConfiguration();

            config.ConnectionString   = "InstrumentationKey=d0198460-ce4a-4efa-9e17-3edef2b40f15";
            config.InstrumentationKey = "c8da242c-9f2d-45ab-913c-c9953516e9c2";
            var output = new ApplicationInsightsOutput(config, healthReporterMock.Object);

            VerifyNoErrorsOrWarnings(healthReporterMock);

            var telemetry = new TraceTelemetry();

            output.telemetryClient.InitializeInstrumentationKey(telemetry);
            Assert.Equal("c8da242c-9f2d-45ab-913c-c9953516e9c2", telemetry.Context.InstrumentationKey, StringComparer.OrdinalIgnoreCase);
        }
Example #4
0
        public void UsesIsoDateFormat()
        {
            EventData e = new EventData();

            e.Payload.Add("DateTimeProperty", new DateTime(2017, 4, 19, 10, 15, 23, DateTimeKind.Utc));
            e.Payload.Add("DateTimeOffsetProperty", new DateTimeOffset(2017, 4, 19, 10, 16, 07, TimeSpan.Zero));

            var healthReporterMock = new Mock <IHealthReporter>();
            var config             = new ApplicationInsightsOutputConfiguration();
            var aiOutput           = new ApplicationInsightsOutput(config, healthReporterMock.Object);
            var propertyBag        = new PropertyBag();

            aiOutput.AddProperties(propertyBag, e);

            var dateTimeRegex = new Regex("2017-04-19T10:15:23(\\.0+)?Z", RegexOptions.None, TimeSpan.FromMilliseconds(100));

            Assert.Matches(dateTimeRegex, propertyBag.Properties["DateTimeProperty"]);

            var dateTimeOffsetRegex = new Regex("2017-04-19T10:16:07(\\.0+)?\\+00:00", RegexOptions.None, TimeSpan.FromMilliseconds(100));

            Assert.Matches(dateTimeOffsetRegex, propertyBag.Properties["DateTimeOffsetProperty"]);
        }