public void InitializeDoesNotSetAccountIdIfCookieIsEmpty()
        {
            // Arrange
            var initializer  = new TestableAccountIdTelemetryInitializer();
            var cookieString = string.Empty;
            RequestTelemetry requestTelemetry = initializer.FakeContext.WithAuthCookie(cookieString);

            // Act
            initializer.Initialize(new StubTelemetry());

            // Assert
            Assert.AreEqual(null, requestTelemetry.Context.User.AccountId);
        }
        public void InitializeReadsAccountIdFromSimpleCookie()
        {
            // Arrange
            var initializer  = new TestableAccountIdTelemetryInitializer();
            var cookieString = "123|account123";
            RequestTelemetry requestTelemetry = initializer.FakeContext.WithAuthCookie(cookieString);

            // Act
            initializer.Initialize(new EventTelemetry());

            // Assert
            Assert.AreEqual("account123", requestTelemetry.Context.User.AccountId);
        }
        public void InitializeReadsAccountIdFromSpecialCharactersInCookie()
        {
            // Arrange
            var initializer  = new TestableAccountIdTelemetryInitializer();
            var cookieString = "123|$#@!!!!";
            RequestTelemetry requestTelemetry = initializer.FakeContext.WithAuthCookie(cookieString);

            // Act
            initializer.Initialize(new StubTelemetry());

            // Assert
            Assert.AreEqual("$#@!!!!", requestTelemetry.Context.User.AccountId);
        }
        public void InitializeDoesNotSetAccountIdIfCookieIsMalformed()
        {
            // Arrange
            var initializer = new TestableAccountIdTelemetryInitializer();
            var cookieString = "123|";
            RequestTelemetry requestTelemetry = initializer.FakeContext.WithAuthCookie(cookieString);

            // Act
            initializer.Initialize(new StubTelemetry());

            // Assert
            Assert.AreEqual(null, requestTelemetry.Context.User.AccountId);
        }
        public void InitializeSetsIdForTelemetryUsingIdFromRequestTelemetry()
        {
            // Arrange
            var metricTelemetry = new MetricTelemetry("name", 0);
            var source = new TestableAccountIdTelemetryInitializer();
            RequestTelemetry requestTelemetry = source.FakeContext.CreateRequestTelemetryPrivate();
            requestTelemetry.Context.User.AccountId = "1";
            
            // Act
            source.Initialize(metricTelemetry);

            // Assert
            Assert.AreEqual("1", metricTelemetry.Context.User.AccountId);
        }
        public void InitializeSetsIdForTelemetryUsingIdFromRequestTelemetry()
        {
            // Arrange
            var metricTelemetry = new MetricTelemetry("name", 0);
            var source          = new TestableAccountIdTelemetryInitializer();
            RequestTelemetry requestTelemetry = source.FakeContext.CreateRequestTelemetryPrivate();

            requestTelemetry.Context.User.AccountId = "1";

            // Act
            source.Initialize(metricTelemetry);

            // Assert
            Assert.AreEqual("1", metricTelemetry.Context.User.AccountId);
        }
        public void InitializeDoesNotSetIdIfTelemetryHasIt()
        {
            // Arrange
            var metricTelemetry = new MetricTelemetry("name", 0);
            var source = new TestableAccountIdTelemetryInitializer();
            RequestTelemetry requestTelemetry = source.FakeContext.CreateRequestTelemetryPrivate();
            requestTelemetry.Context.User.AccountId = "1";
            metricTelemetry.Context.User.AccountId = "2";

            // Act
            source.Initialize(metricTelemetry);

            // Assert
            Assert.AreEqual("2", metricTelemetry.Context.User.AccountId);
        }
        public void InitializeDoesNotSetIdIfTelemetryHasIt()
        {
            // Arrange
            var metricTelemetry = new MetricTelemetry("name", 0);
            var source          = new TestableAccountIdTelemetryInitializer();
            RequestTelemetry requestTelemetry = source.FakeContext.CreateRequestTelemetryPrivate();

            requestTelemetry.Context.User.AccountId = "1";
            metricTelemetry.Context.User.AccountId  = "2";

            // Act
            source.Initialize(metricTelemetry);

            // Assert
            Assert.AreEqual("2", metricTelemetry.Context.User.AccountId);
        }
        public void InitializeReadsAccountIdFromSpecialCharactersInCookie()
        {
            // Arrange
            var initializer = new TestableAccountIdTelemetryInitializer();
            var cookieString = "123|$#@!!!!";
            RequestTelemetry requestTelemetry = initializer.FakeContext.WithAuthCookie(cookieString);

            // Act
            initializer.Initialize(new StubTelemetry());

            // Assert
            Assert.AreEqual("$#@!!!!", requestTelemetry.Context.User.AccountId);
        }
        public void InitializeReadsAccountIdFromSimpleCookie()
        {
            // Arrange
            var initializer = new TestableAccountIdTelemetryInitializer();
            var cookieString = "123|account123";
            RequestTelemetry requestTelemetry = initializer.FakeContext.WithAuthCookie(cookieString);

            // Act
            initializer.Initialize(new EventTelemetry());

            // Assert
            Assert.AreEqual("account123", requestTelemetry.Context.User.AccountId);
        }