public void Build_ShouldNotUserAgent_WhenNone()
        {
            // Arrange
            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, _mockSessionState);

            // Act
            var resul = builder.Build();

            // Assert
            resul.Data["UserAgent"].ShouldBeNull();
        }
        public void Build_ShouldNotAppendSessionData_WhenNull()
        {
            // Arrange
            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, null);

            // Act
            var resul = builder.Build();

            // Assert
            resul.Data.Keys.Count.ShouldBe(0);
        }
        public void Build_ShouldNotReturnNull()
        {
            // Arrange
            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, _mockSessionState);

            // Act
            var result = builder.Build();

            // Assert
            result.ShouldNotBeNull();
            result.ShouldBeSameAs(_exception);
        }
        public void Build_ShouldAppendSessionData_WhenPrimitive()
        {
            // Arrange
            _mockSessionState.Add("key_1", "value_1");

            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, _mockSessionState);

            // Act
            var resul = builder.Build();

            // Assert
            resul.Data["session:key_1"].ShouldBe("value_1");
        }
        public void Build_ShouldAppendUrlReferrer()
        {
            // Arrange
            _mockRequest
            .Setup(x => x.UrlReferrer)
            .Returns(new Uri("http://localhost"));

            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, _mockSessionState);

            // Act
            var resul = builder.Build();

            // Assert
            resul.Data["UrlReferrer"].ShouldNotBeNull();
        }
        public void Build_ShouldNotAppendFormData_WhenNull()
        {
            // Arrange
            _mockRequest
            .Setup(x => x.Form)
            .Returns((NameValueCollection)null);

            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, _mockSessionState);

            // Act
            var resul = builder.Build();

            // Assert
            resul.Data.Keys.Count.ShouldBe(0);
        }
        public void Build_ShouldAppendUserHostAddress()
        {
            // Arrange
            _mockRequest
            .Setup(x => x.UserHostAddress)
            .Returns("test_hostaddress");

            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, _mockSessionState);

            // Act
            var resul = builder.Build();

            // Assert
            resul.Data["UserHostAddress"].ShouldBe("test_hostaddress");
        }
        public void Build_ShouldAppendFormData()
        {
            // Arrange
            _mockRequest
            .Setup(x => x.Form)
            .Returns(new NameValueCollection
            {
                { "key_1", "value_1" }
            });

            var builder = new ExceptionWithDataBuilder(_exception, _mockRequest.Object, _mockSessionState);

            // Act
            var resul = builder.Build();

            // Assert
            resul.Data["form:key_1"].ShouldBe("value_1");
        }