예제 #1
0
        public static string ConvertToOrmliteSQLiteDialect(this string input)
        {
            var result = input;

            if (SQLServerToOrmliteSQLiteDialectConverter.ConvertToOrmliteSQLiteDialect)
            {
                var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();
                result = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(input);
            }

            return(result);
        }
        public void Convert_SchemaDotTable_BecomesSchemaUnderscoreTable()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT * FROM SchemaName.[TableName]";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            // Assert
            Assert.AreEqual("SELECT * FROM SchemaName_TableName", resultingQuery);
        }
        public void Convert_ConvertStatementIsRemoved()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT CAST(columnName as varchar) FROM SchemaName.TableName";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            var expectedQuery = @"SELECT CAST(columnName as text) FROM SchemaName_TableName";

            Assert.AreEqual(expectedQuery, resultingQuery);
        }
        public void Convert_SecondsDATEADDIsConvertedInWhereClause()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT * FROM SchemaName.TableName WHERE DATEADD(second, amounttoadd, date) < @DateTime";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            var expectedQuery = @"SELECT * FROM SchemaName_TableName WHERE DATETIME(date, amounttoadd ||' seconds') < @DateTime";

            Assert.AreEqual(expectedQuery, resultingQuery);
        }
        public void Convert_MinutesDATEADDIsConverted()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT DATEADD(minute, amounttoadd, date) FROM SchemaName.TableName";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            var expectedQuery = @"SELECT DATETIME(date, amounttoadd ||' minutes') FROM SchemaName_TableName";

            Assert.AreEqual(expectedQuery, resultingQuery);
        }
        public void Convert_GroupByNotAffected()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT * FROM SchemaName.TableName T GROUP BY T.ColumnName";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            // Assert
            var expectedQuery = @"SELECT * FROM SchemaName_TableName T GROUP BY T.ColumnName";

            Assert.AreEqual(expectedQuery, resultingQuery);
        }
        public void Convert_LikeStatementsAreConverted()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT * FROM SchemaName.TableName T WHERE T.ColumnName LIKE '%' + @Parameter + '%')";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            // Assert
            var expectedQuery = @"SELECT * FROM SchemaName_TableName T WHERE T.ColumnName LIKE '%' || @Parameter || '%'";

            Assert.AreEqual(expectedQuery, resultingQuery);
        }
        public void Convert_PagingIsConverted()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT * FROM Product.Product P ORDER BY P.ProductId OFFSET (@Page -1) * @RowPerPage ROWS FETCH NEXT @RowPerPage ROWS ONLY";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            // Assert
            var expectedQuery = @"SELECT * FROM Product_Product P ORDER BY P.ProductId LIMIT (@RowPerPage) OFFSET @Page -1";

            Assert.AreEqual(expectedQuery, resultingQuery);
        }
        public void Convert_JoinsAreNotAffectedWithNoLock()
        {
            // Arrange
            var sqlPlatformConverter = new SQLServerToOrmliteSQLiteDialectConverter();

            var query = @"SELECT * FROM SchemaName.TableName T LEFT JOIN SchemaName.JoinTableName1 JTN WITH(nolock) ON T.Id = JTN.Id LEFT JOIN SchemaName.JoinTableName2 JTN2 WITH(NOLOCK) ON JTN1.Id2 = JTN1.Id2";

            // Act
            var resultingQuery = sqlPlatformConverter.ConvertToOrmliteSQLiteSQL(query);

            // Assert
            var expectedQuery = @"SELECT * FROM SchemaName_TableName T LEFT JOIN SchemaName_JoinTableName1 JTN  ON T.Id = JTN.Id LEFT JOIN SchemaName_JoinTableName2 JTN2  ON JTN1.Id2 = JTN1.Id2";

            Assert.AreEqual(expectedQuery, resultingQuery);
        }