public void Create_NoException()
        {
            // arrange
            int applicationId = 1;

            // act
            Action verify = () => InProcessTelemetrySession.Create(applicationId);

            // assert
            Assert.Null(Record.Exception(verify));
        }
        public void Create_ApplicationIdLessOne()
        {
            // arrange
            int applicationId = 0;

            // act
            Action verify = () => InProcessTelemetrySession.Create(applicationId);

            // assert
            Assert.Throws <ArgumentOutOfRangeException>("applicationId", verify);
        }
        public void EnableProvider_NoException()
        {
            using (ITelemetrySession session = InProcessTelemetrySession.Create(1))
            {
                // arrange
                string name = "Valid-Name";

                // act
                Action verify = () => session.EnableProvider(name, EventLevel.Critical);

                // assert
                Assert.Null(Record.Exception(verify));
            }
        }
        public void EnableProvider_TransmitterNull()
        {
            using (ITelemetrySession session = InProcessTelemetrySession.Create(1))
            {
                // arrange
                string name = null;

                // act
                Action verify = () => session.EnableProvider(name, EventLevel.Critical);

                // assert
                Assert.Throws <ArgumentNullException>("name", verify);
            }
        }
        public void SetTransmitter_NoException()
        {
            using (ITelemetrySession session = InProcessTelemetrySession.Create(1))
            {
                // arrange
                ITelemetryEventTransmitter transmitter = new ProbeTransmitter();

                // act
                Action verify = () => session.Attach(transmitter);

                // assert
                Assert.Null(Record.Exception(verify));
            }
        }
        public void SetTransmitter_TransmitterNull()
        {
            using (ITelemetrySession session = InProcessTelemetrySession.Create(1))
            {
                // arrange
                ITelemetryEventTransmitter transmitter = null;

                // act
                Action verify = () => session.Attach(transmitter);

                // assert
                Assert.Throws <ArgumentNullException>("transmitter", verify);
            }
        }
        public void Create_VerifyDefaultAndAllowedProviders()
        {
            // arrange
            int applicationId            = 1;
            ProbeTransmitter transmitter = new ProbeTransmitter();

            // act
            int telemetryCount = 0;

            using (ITelemetrySession session = InProcessTelemetrySession
                                               .Create(applicationId, EventLevel.Verbose,
                                                       new[] { new TestProviderDescriptor() }))
            {
                session.Attach(transmitter);
                Application.Start(applicationId);
                Custom.EventSources.TestEventSource.Log.RunProcess(1234);
                Application.Stop();
                telemetryCount = transmitter.Count;
            }

            // assert
            Assert.Equal(1, telemetryCount);
        }