public static void Equals_GivenEqualComplexExpressionsWrappedInParens_ReturnsTrue()
        {
            const string input    = "([test_column_1] > len(left([test], 50)))";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(input, input);

            Assert.That(equals, Is.True);
        }
        public static void Equals_GivenEqualSqlStringArgumentsWrappedInParens_ReturnsTrue()
        {
            const string input    = "('test')";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(input, input);

            Assert.That(equals, Is.True);
        }
        public static void Equals_GivenEqualNumberArguments_ReturnsTrue()
        {
            const string input    = "123";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(input, input);

            Assert.That(equals, Is.True);
        }
        public static void Equals_GivenDifferentSqlStringsWithOneWrappedInParens_ReturnsTrue()
        {
            const string inputX   = "('test')";
            const string inputY   = "'alternative'";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.False);
        }
        public static void Equals_GivenDifferentSqlStringArguments_ReturnsFalse()
        {
            const string inputX   = "'test'";
            const string inputY   = "'alternative'";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.False);
        }
        public static void Equals_GivenIgnoreCaseTextComparerAndEqualComplexExpressionsButDifferentStringCase_ReturnsTrue()
        {
            const string inputX   = "([test_column_1] > len(left('test', (50))))";
            const string inputY   = "([test_column_1] > len(left('TEST', (50))))";
            var          comparer = new OracleExpressionComparer(sqlStringComparer: StringComparer.OrdinalIgnoreCase);

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.True);
        }
        public static void Equals_GivenDefaultTextComparerAndEqualComplexExpressionsButDifferentStringCase_ReturnsFalse()
        {
            const string inputX   = "([test_column_1] > len(left('test', (50))))";
            const string inputY   = "([test_column_1] > len(left('TEST', (50))))";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.False);
        }
        public static void Equals_GivenEqualComplexExpressionsOneWithWhitespaceRemoved_ReturnsTrue()
        {
            const string inputX   = "([test_column_1] > len(left([test], (50))))";
            const string inputY   = "[test_column_1]>len(left([test],50))";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.True);
        }
        public static void Equals_GivenDifferentComplexExpressions_ReturnsFalse()
        {
            const string inputX   = "[test_column_1] > len(left([test], 50))";
            const string inputY   = "[test_column_2] < len(left([test], 50))";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.False);
        }
        public static void Equals_GivenEqualNumbersWithOneWrappedTwiceInParens_ReturnsTrue()
        {
            const string inputX   = "((123))";
            const string inputY   = "123";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.True);
        }
        public static void Equals_GivenDifferentNumbersWithOneWrappedInParens_ReturnsTrue()
        {
            const string inputX   = "(123)";
            const string inputY   = "456";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.False);
        }
        public static void Equals_GivenDifferentNumberArguments_ReturnsFalse()
        {
            const string inputX   = "123";
            const string inputY   = "456";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.False);
        }
        public static void Equals_GivenEqualDatesWithOneWrappedInParens_ReturnsTrue()
        {
            const string inputX   = "(getdate())";
            const string inputY   = "getdate()";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.True);
        }
        public static void Equals_GivenDifferentDateArgumentsWrappedInParens_ReturnsFalse()
        {
            const string inputX   = "(getdate())";
            const string inputY   = "(getutcdate())";
            var          comparer = new OracleExpressionComparer();

            var equals = comparer.Equals(inputX, inputY);

            Assert.That(equals, Is.False);
        }
        public async Task Columns_WhenGivenTableWithColumnWithDefaultValue_ColumnReturnsCorrectDefaultValue()
        {
            const string tableName = "TABLE_TEST_TABLE_33";
            var          table     = await GetTableAsync(tableName).ConfigureAwait(false);

            var column = table.Columns.Single();

            const string defaultValue = "1";
            var          comparer     = new OracleExpressionComparer();
            var          equals       = comparer.Equals(defaultValue, column.DefaultValue.UnwrapSome());

            Assert.That(equals, Is.True);
        }