增加内存数据库ModelSP测试,测试失败

This commit is contained in:
falcon 2019-09-09 15:45:09 +08:00
parent 8f0d39981f
commit 9eaae62a60
6 changed files with 83 additions and 22 deletions

View File

@ -0,0 +1,45 @@
using Microsoft.EntityFrameworkCore;
using Falcon.ModelSP;
using System.Collections.Generic;
namespace Falcon.ModelSP.Test.Db
{
class TestDbContext:DbContext
{
protected TestDbContext() { }
protected TestDbContext(DbContextOptions option) : base(option) { }
public static TestDbContext GetDbInMemory() {
var option = new DbContextOptionsBuilder<TestDbContext>().UseInMemoryDatabase("TestDb").Options;
var db = new TestDbContext(option);
AddTestPr(db);
return db;
}
public static void AddTestPr(TestDbContext db) {
var sql = @"
DROP PROC Pr_AddOne
CREATE PROCEDURE Pr_AddOne
@a AS INT
AS
Set Nocount On
SELECT @a+1 aa;
GO
";
//db.Database.ExecuteSqlCommandAsync(sql).Wait();
}
public IEnumerable<Pr_AddOneResult> Pr_AddOne(Pr_AddOne data) {
return this.RunProcuder<Pr_AddOne,Pr_AddOneResult>(data);
}
}
public class Pr_AddOne
{
public int A { get; set; }
}
public class Pr_AddOneResult
{
public int Aa { get; set; }
}
}

View File

@ -7,6 +7,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.6" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" /> <PackageReference Include="MSTest.TestAdapter" Version="1.4.0" />
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" /> <PackageReference Include="MSTest.TestFramework" Version="1.4.0" />

View File

@ -1,6 +1,7 @@
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
using Falcon.ModelSP; using Falcon.ModelSP;
using System.Linq; using System.Linq;
using Falcon.ModelSP.Test.Db;
namespace Falcon.ModelSP.Test namespace Falcon.ModelSP.Test
{ {
@ -43,5 +44,18 @@ namespace Falcon.ModelSP.Test
[FalconSPProcuderName("sp123")] [FalconSPProcuderName("sp123")]
class ParmModel1 { } class ParmModel1 { }
[TestMethod]
public void InMemoryDbTest() {
//内存数据库无法使用关系模型,测试无法进行
return;
using(var db = TestDbContext.GetDbInMemory()) {
var re = db.Pr_AddOne(new Pr_AddOne { A = 1 });
Assert.IsTrue(re != null);
Assert.IsTrue(re.Any());
var first = re.First();
Assert.IsTrue(first.Aa == 2);
}
}
} }
} }

View File

@ -0,0 +1,20 @@
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace Falcon.ModelSP
{
/// <summary>
/// 存储过程执行器实现
/// </summary>
public class FalconSPRuner:IFalconSPRuner
{
public int RunSP<TPrarmType>(DbContext db,TPrarmType data) {
return db.RunProcuder(data);
}
public IEnumerable<TResultType> RunSP<TPrarmType, TResultType>(DbContext db,TPrarmType data)
where TResultType : class, new() {
return db.RunProcuder<TPrarmType,TResultType>(data);
}
}
}

View File

@ -1,6 +1,4 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Text;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Falcon.ModelSP namespace Falcon.ModelSP
@ -27,19 +25,4 @@ namespace Falcon.ModelSP
/// <param name="data">参数数据</param> /// <param name="data">参数数据</param>
IEnumerable<TResultType> RunSP<TPrarmType, TResultType>(DbContext db,TPrarmType data) where TResultType : class, new(); IEnumerable<TResultType> RunSP<TPrarmType, TResultType>(DbContext db,TPrarmType data) where TResultType : class, new();
} }
/// <summary>
/// 存储过程执行器实现
/// </summary>
public class FalconSPRuner:IFalconSPRuner
{
public int RunSP<TPrarmType>(DbContext db,TPrarmType data) {
return db.RunProcuder(data);
}
public IEnumerable<TResultType> RunSP<TPrarmType, TResultType>(DbContext db,TPrarmType data)
where TResultType : class, new() {
return db.RunProcuder<TPrarmType,TResultType>(data);
}
}
} }

View File

@ -1,7 +1,4 @@
using System; using Microsoft.Extensions.DependencyInjection;
using System.Collections.Generic;
using System.Text;
using Microsoft.Extensions.DependencyInjection;
namespace Falcon.ModelSP namespace Falcon.ModelSP
{ {