diff options
author | crupest <crupest@outlook.com> | 2024-11-11 01:12:29 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2024-12-19 21:42:01 +0800 |
commit | a7fb0508867ee53934be18a6606aa8bc12c2645b (patch) | |
tree | 5994f0a62733b13f9f330e3515260ae20dc4a0bd /docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs | |
parent | 7692763f83ad1be735b0b9e9ab0af8ce666d8de8 (diff) | |
download | crupest-a7fb0508867ee53934be18a6606aa8bc12c2645b.tar.gz crupest-a7fb0508867ee53934be18a6606aa8bc12c2645b.tar.bz2 crupest-a7fb0508867ee53934be18a6606aa8bc12c2645b.zip |
HALF WORK: 2024.12.19
Re-organize file structure.
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs deleted file mode 100644 index 72b6218..0000000 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System.Text; - -namespace CrupestApi.Commons.Crud.Tests; - -public class SqlCompareHelper -{ - private static List<char> SymbolTokens = new List<char>() { '(', ')', ';' }; - - public static List<string> SqlExtractWords(string? sql, bool toLower = true) - { - var result = new List<string>(); - - if (string.IsNullOrEmpty(sql)) - { - return result; - } - - var current = 0; - - StringBuilder? wordBuilder = null; - - while (current < sql.Length) - { - if (char.IsWhiteSpace(sql[current])) - { - if (wordBuilder is not null) - { - result.Add(wordBuilder.ToString()); - wordBuilder = null; - } - } - else if (SymbolTokens.Contains(sql[current])) - { - if (wordBuilder is not null) - { - result.Add(wordBuilder.ToString()); - wordBuilder = null; - } - result.Add(sql[current].ToString()); - } - else - { - if (wordBuilder is not null) - { - wordBuilder.Append(sql[current]); - } - else - { - wordBuilder = new StringBuilder(); - wordBuilder.Append(sql[current]); - } - } - current++; - } - - if (wordBuilder is not null) - { - result.Add(wordBuilder.ToString()); - } - - if (toLower) - { - for (int i = 0; i < result.Count; i++) - { - result[i] = result[i].ToLower(); - } - } - - return result; - } - - public static bool SqlEqual(string left, string right) - { - return SqlExtractWords(left) == SqlExtractWords(right); - } - - [Fact] - public void TestSqlExtractWords() - { - var sql = "SELECT * FROM TableName WHERE (id = @abcd);"; - var words = SqlExtractWords(sql); - - Assert.Equal(new List<string> { "select", "*", "from", "tablename", "where", "(", "id", "=", "@abcd", ")", ";" }, words); - } -} |