From ddce7fb5891d97eb66960687fe1fea4cb0bd7c94 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 10 Dec 2022 11:35:49 +0800 Subject: Develop secret api. v23 --- .../Crud/ColumnTypeInfoTest.cs | 26 ++++++++++++++++++++++ .../Crud/SqlCompareHelper.cs | 14 ++++++++++-- .../CrupestApi.Commons.Tests/Crud/TableInfoTest.cs | 1 + .../CrupestApi/CrupestApi.Commons/Json.cs | 5 +---- 4 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/ColumnTypeInfoTest.cs create mode 100644 docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/TableInfoTest.cs (limited to 'docker/crupest-api') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/ColumnTypeInfoTest.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/ColumnTypeInfoTest.cs new file mode 100644 index 0000000..56ae06f --- /dev/null +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/ColumnTypeInfoTest.cs @@ -0,0 +1,26 @@ +using System.Data; + +namespace CrupestApi.Commons.Crud.Tests; + +public class ColumnTypeInfoTest +{ + private ColumnTypeProvider _provider = new ColumnTypeProvider(); + + [Theory] + [InlineData(typeof(int), DbType.Int32, 123)] + [InlineData(typeof(long), DbType.Int64, 456)] + [InlineData(typeof(sbyte), DbType.SByte, 789)] + [InlineData(typeof(short), DbType.Int16, 101)] + [InlineData(typeof(float), DbType.Single, 1.0f)] + [InlineData(typeof(double), DbType.Double, 1.0)] + [InlineData(typeof(string), DbType.String, "Hello world!")] + [InlineData(typeof(byte[]), DbType.Binary, new byte[] { 1, 2, 3 })] + public void BasicColumnTypeTest(Type type, DbType dbType, object? value) + { + var typeInfo = _provider.Get(type); + Assert.True(typeInfo.IsSimple); + Assert.Equal(dbType, typeInfo.DbType); + Assert.Equal(value, typeInfo.ConvertFromDatabase(value)); + Assert.Equal(value, typeInfo.ConvertToDatabase(value)); + } +} diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs index 8f3e5c6..c019e19 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/SqlCompareHelper.cs @@ -44,9 +44,11 @@ public class SqlCompareHelper } else { - wordBuilder = new StringBuilder(sql[current]); + wordBuilder = new StringBuilder(); + wordBuilder.Append(sql[current]); } } + current++; } if (wordBuilder is not null) @@ -54,6 +56,14 @@ public class SqlCompareHelper result.Add(wordBuilder.ToString()); } + if (toLower) + { + for (int i = 0; i < result.Count; i++) + { + result[i] = result[i].ToLower(); + } + } + return result; } @@ -68,6 +78,6 @@ public class SqlCompareHelper var sql = "SELECT * FROM TableName WHERE id = @abcd;"; var words = SqlExtractWords(sql); - Assert.Equal(words, new List { "select", "*", "from", "tablename", "where", "id", "=", "@abcd", ";" }); + Assert.Equal(new List { "select", "*", "from", "tablename", "where", "id", "=", "@abcd", ";" }, words); } } diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/TableInfoTest.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/TableInfoTest.cs new file mode 100644 index 0000000..d82c70f --- /dev/null +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/TableInfoTest.cs @@ -0,0 +1 @@ +namespace CrupestApi.Commons.Crud.Tests; diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs index 3017176..4f5862f 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs @@ -29,11 +29,10 @@ public static class CrupestApiJsonExtensions } else { - throw new Exception("Only value not array or object is allowed.") + throw new Exception("Only value not array or object is allowed."); } } - public static IServiceCollection AddJsonOptions(this IServiceCollection services) { services.AddOptions(); @@ -44,8 +43,6 @@ public static class CrupestApiJsonExtensions config.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; }); - // TODO: Register column type provided converters. - return services; } -- cgit v1.2.3