using System;
using System.Threading.Tasks;
using Util.Data.Sql;
using Util.Tests.Configs;
using Util.Tests.Models;
using Xunit;
namespace Util.Data.Dapper.Tests.SqlExecutor {
///
/// MySql Sql执行器测试 - 执行Sql测试
///
public partial class MySqlExecutorTest {
///
/// 测试执行Sql增删改操作
///
[Fact]
public async Task TestExecuteAsync() {
var id = Guid.NewGuid();
await _sqlExecutor
.AppendLine( "Insert Product(ProductId,Code) " )
.Append( "Values(@ProductId,@Code)" )
.AddParam( "@ProductId", id )
.AddParam( "Code", TestConfig.Value )
.ExecuteAsync();
var result = await _sqlExecutor.Select( "Code" ).From( "Product" ).Where( "ProductId", id ).ToStringAsync();
Assert.Equal( TestConfig.Value, result );
}
///
/// 测试执行Sql增删改操作 - 写入扩展属性
///
[Fact]
public async Task TestExecuteAsync_2() {
var id = Guid.NewGuid();
var product = new Product( id ) {
Code = TestConfig.Value,
TestProperty1 = "a"
};
await _sqlExecutor
.AppendLine( "Insert Product(ProductId,Code,ExtraProperties) " )
.Append( "Values(@Id,@Code,@ExtraProperties)" )
.AddDynamicParams( product )
.AddParam( "ExtraProperties", product.GetExtraPropertiesJson() )
.ExecuteAsync();
var result = await _sqlExecutor.Select( "*" ).From( "Product" ).Where( "ProductId", id ).ExecuteSingleAsync();
Assert.Equal( TestConfig.Value, result.Code );
Assert.Equal( "a", result.TestProperty1 );
}
}
}