public void LogInternal_WithNullArgument_ThrowsException()
        {
            // Arrange
            var provider = new FakeSqlLoggingProvider();

            // Act
            provider.Public_LogInternal(null);
        }
        public void Initialize_WithNullConfiguration_ThrowsException()
        {
            // Arrange
            var provider = new FakeSqlLoggingProvider();
            NameValueCollection invalidConfiguration = null;

            // Act
            provider.Initialize("Valid name", invalidConfiguration);
        }
        public void Initialize_WithValidConfiguration_Succeeds()
        {
            // Arrange
            var provider = new FakeSqlLoggingProvider();
            NameValueCollection validConfiguration = CreateValidConfiguration();

            // Act
            provider.Initialize("Valid name", validConfiguration);
        }
        public void Public_SaveExceptionToDatabase_WithNullTransaction_ThrowsException()
        {
            // Arrange
            var provider = new FakeSqlLoggingProvider();

            SqlTransaction invalidTransaction = null;
            Exception      validException     = new Exception();

            // Act
            provider.Public_SaveExceptionToDatabase(invalidTransaction, validException, 1, 1);
        }
        public void SaveEventToDatabase_WithNullTransaction_ThrowsException()
        {
            // Arrange
            var provider = new FakeSqlLoggingProvider();

            SqlTransaction invalidTransaction = null;

            // Act
            provider.Public_SaveEventToDatabase(invalidTransaction, LoggingEventType.Debug, "Valid message",
                                                "Valid source");
        }
        public void Initialize_ConfigurationWithoutDescription_SetsDefaultDescription()
        {
            // Arrange
            var expectedDescription = "SQL logging provider";
            var provider            = new FakeSqlLoggingProvider();
            var validConfiguration  = CreateValidConfiguration();

            // Act
            provider.Initialize("Valid provider name", validConfiguration);

            // Assert
            Assert.AreEqual(expectedDescription, provider.Description);
        }
        public void Public_SaveExceptionToDatabase_WithNullException_ThrowsException()
        {
            // Arrange
            var provider = new FakeSqlLoggingProvider();

            Exception invalidException = null;

            // To bad, we can't create a Transaction, but atleast we get code coverage.
            SqlTransaction invalidTransaction = null;

            // Act
            provider.Public_SaveExceptionToDatabase(invalidTransaction, invalidException, 1, 1);
        }
        public void Initialize_ConfigurationWithCustomDescription_SetsSpecifiedDescription()
        {
            // Arrange
            var expectedDescription = "My SQL logger";
            var provider            = new FakeSqlLoggingProvider();
            var validConfiguration  = CreateValidConfiguration();

            validConfiguration["description"] = expectedDescription;

            // Act
            provider.Initialize("Valid provider name", validConfiguration);

            // Assert
            Assert.AreEqual(expectedDescription, provider.Description);
        }