public void GenerateCommandText_ShouldReturnCommandText()
        {
            //Arrange
            var tableName     = "LOGGING.LOG";
            var serverName    = "SERVER_NAME";
            var application   = "APPLICATION";
            var date          = "DATE";
            var level         = "LEVEL";
            var sourceContext = "SOURCE_CONTEXT";
            var state         = "STATE";
            var exception     = "EXCEPTION";
            var sb            = new StringBuilder();

            sb.Append("begin ");
            sb.Append($"INSERT INTO {tableName}");
            sb.Append($"({serverName},{application},{date},{level},{sourceContext},{state},{exception})");
            sb.Append("VALUES");
            sb.Append($"(:{serverName},:{application},:{date},:{level},:{sourceContext},:{state},:{exception});");
            sb.Append(" end;");
            var          expectedCommandText  = sb.ToString();
            var          expectedCategoryName = "OracleLoggerProvider";
            var          logConfiguration     = NewLogConfiguration(tableName, serverName, application, date, level, sourceContext, state, exception);
            OracleLogger logger = new OracleLogger(expectedCategoryName, null, logConfiguration);

            //Act
            var commandText = logger.GenerateCommandText();

            //Assert
            Assert.Equal(expectedCommandText, commandText);
        }
        public void BeginScope_ShouldReturnDisposabler()
        {
            //Arrange
            var logger = new OracleLogger(null, null, null);

            //Act
            var scope = logger.BeginScope(1);

            //Assert
            Assert.NotNull(scope);
        }
        public void IsEnabled_ShouldReturnAlwaysTrue_WhenAnyLogLevel()
        {
            //Arrange
            var logger = new OracleLogger(null, null, null);

            //Act
            var isEnabled = logger.IsEnabled(LogLevel.Warning);

            //Assert
            Assert.True(isEnabled);
        }
        public void TestCustomerOrderWithOracleLogger()
        {
            IInternetCustomerRead _internetCustomer = new InternetCustomer();
            Logger _logger = new OracleLogger();

            Order    o    = new Order(_internetCustomer, _logger);
            Customer cust = o.GetCustomerById(5);

            o._orderItems = oi;

            decimal cost = o.CalculateTotal(cust);

            Assert.AreEqual(8.63m, cost);
        }
        public void AppendParameters_ShouldReturnAlwaysTrue_WhenAnyLogLevel()
        {
            //Arrange
            var logConfiguration = NewLogConfiguration();
            var logger           = new OracleLogger(null, null, logConfiguration);
            var oracleCommand    = new OracleCommand();
            var log = NewLog();

            //Act
            logger.AppendParameters(oracleCommand, log);

            //Assert
            Assert.Equal(logConfiguration.Parameters.Count, oracleCommand.Parameters.Count);
        }
        public void GetLogValues_ShouldReturnLogValues()
        {
            //Arrange
            var          expectedCategoryName = "OracleLoggerProvider";
            var          expectedLogLevel     = LogLevel.Error;
            var          expectedState        = "An unexpected error has occurred.";
            var          expectedException    = new Exception(expectedState);
            var          expectedDate         = DateTime.Now.Date;
            EventId      expectedEventId      = 1;
            OracleLogger logger = new OracleLogger(expectedCategoryName, null, null);

            //Act
            var logValues = logger.GetLogValues(expectedLogLevel, expectedEventId, expectedState, expectedException);

            //Assert
            Assert.Equal(expectedCategoryName, logValues.SourceContext);
            Assert.Equal(expectedLogLevel, logValues.LogLevel);
            Assert.Equal(expectedDate, logValues.Date.Date);
            Assert.Equal(expectedEventId, logValues.EventId);
            Assert.Equal(expectedState, logValues.State);
            Assert.Equal(expectedException, logValues.Exception);
        }