Skip to content

Commit 5df01bb

Browse files
committed
✅ test(Domain): 增加 领域对象 相关测试功能
1 parent 0a38690 commit 5df01bb

File tree

20 files changed

+774
-67
lines changed

20 files changed

+774
-67
lines changed

Bing.All.sln

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bing.Dapper.Oracle", "frame
282282
EndProject
283283
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "12-Data", "12-Data", "{B94B352B-EE67-4350-88A8-04187CA7DF47}"
284284
EndProject
285-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "03-DDD", "03-DDD", "{957AF91A-2CD9-4C0E-8CD7-7C58FABAB312}"
285+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "10-Domain", "10-Domain", "{957AF91A-2CD9-4C0E-8CD7-7C58FABAB312}"
286286
EndProject
287287
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bing.Data.Tests", "framework\tests\Bing.Data.Tests\Bing.Data.Tests.csproj", "{DD45D74C-0D35-4B87-8D01-CA7CF67F7FE4}"
288288
EndProject
@@ -925,7 +925,7 @@ Global
925925
{E06DC786-72AB-417B-ACDB-AF00688544EA} = {09A94120-CE45-402F-B45A-21DF04F0C226}
926926
{65B439C9-4B54-4DB8-86B3-9EBE8E62DF83} = {09A94120-CE45-402F-B45A-21DF04F0C226}
927927
{D6C96AE5-8756-4278-A331-43073E08C3ED} = {5C7976B4-C243-41B9-8303-8E8FAE099D31}
928-
{8B581529-D7D2-4DCF-824A-2AAFB58F8C94} = {5C7976B4-C243-41B9-8303-8E8FAE099D31}
928+
{8B581529-D7D2-4DCF-824A-2AAFB58F8C94} = {957AF91A-2CD9-4C0E-8CD7-7C58FABAB312}
929929
{5E8AD211-7AEF-4D9D-AFA8-C85B6F3D7C6A} = {B5285F1C-479F-43F5-B3DE-3E930516AF6D}
930930
{0A5D1639-8EEE-4BC9-94A5-04F354FEFBFD} = {5C7976B4-C243-41B9-8303-8E8FAE099D31}
931931
{427DC057-A61A-4D4A-9B20-30F11367AFC8} = {92EDE4B9-54BD-423A-991B-342ABB54BE8A}

framework/src/Bing.Core/Properties/R.Designer.cs

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

framework/src/Bing.Core/Properties/R.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@
124124
<value>其他用户正在执行该操作,请稍后再试</value>
125125
</data>
126126
<data name="IdIsEmpty" xml:space="preserve">
127-
<value>Id不能为空</value>
127+
<value>标识不能为空</value>
128128
</data>
129129
<data name="Map_MapperIsNull" xml:space="preserve">
130130
<value>MapperExtensions.Mapper不能为空,请先设置值</value>

framework/src/Bing.Ddd.Domain/Bing/Domain/Entities/EntityBase.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,8 @@ namespace Bing.Domain.Entities;
99
/// 领域实体
1010
/// </summary>
1111
[Serializable]
12-
public abstract class EntityBase : IEntity
12+
public abstract class EntityBase : DomainObjectBase, IEntity
1313
{
14-
/// <summary>
15-
/// 验证
16-
/// </summary>
17-
public abstract IValidationResult Validate();
18-
1914
/// <summary>
2015
/// 初始化
2116
/// </summary>
@@ -73,7 +68,7 @@ public abstract class EntityBase<TEntity, TKey> : DomainObjectBase<TEntity>, IEn
7368
/// <summary>
7469
/// 标识
7570
/// </summary>
76-
[Key, Required]
71+
[Key, Required(ErrorMessageResourceType = typeof(R), ErrorMessageResourceName = "IdIsEmpty")]
7772
public virtual TKey Id { get; protected set; }
7873

7974
/// <summary>
Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,28 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
<Import Project="..\..\..\common.tests.props" />
2+
<Import Project="..\..\..\framework.tests.props" />
3+
34
<PropertyGroup>
4-
<TargetFrameworks>net6.0;net5.0;netcoreapp3.1;</TargetFrameworks>
5+
<RootNamespace />
56
</PropertyGroup>
6-
7+
78
<ItemGroup>
89
<ProjectReference Include="..\..\src\Bing.Ddd.Domain\Bing.Ddd.Domain.csproj" />
910
<ProjectReference Include="..\Bing.Test.Shared\Bing.Test.Shared.csproj" />
1011
</ItemGroup>
12+
13+
<ItemGroup>
14+
<Compile Update="Bing\Tests\Samples\TestResource.Designer.cs">
15+
<DependentUpon>TestResource.resx</DependentUpon>
16+
<DesignTime>True</DesignTime>
17+
<AutoGen>True</AutoGen>
18+
</Compile>
19+
</ItemGroup>
20+
21+
<ItemGroup>
22+
<EmbeddedResource Update="Bing\Tests\Samples\TestResource.resx">
23+
<LastGenOutput>TestResource.Designer.cs</LastGenOutput>
24+
<Generator>PublicResXFileCodeGenerator</Generator>
25+
</EmbeddedResource>
26+
</ItemGroup>
1127

1228
</Project>

framework/tests/Bing.Tests/Domains/GuidEntityTest.cs renamed to framework/tests/Bing.Ddd.Domain.Tests/Bing/Domain/Entities/GuidEntityTest.cs

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
using System;
2-
using Bing.Exceptions;
1+
using Bing.Exceptions;
2+
using Bing.Test.Shared;
33
using Bing.Tests.Samples;
4-
using Bing.Tests.XUnitHelpers;
5-
using Xunit;
64

7-
namespace Bing.Tests.Domains;
5+
namespace Bing.Domain.Entities;
86

97
/// <summary>
108
/// Guid标识实体测试
@@ -22,7 +20,7 @@ public class GuidEntityTest
2220
private AggregateRootSample _sample2;
2321

2422
/// <summary>
25-
/// 初始化一个<see cref="GuidEntityTest"/>类型的实例
23+
/// 测试初始化
2624
/// </summary>
2725
public GuidEntityTest()
2826
{
@@ -34,7 +32,7 @@ public GuidEntityTest()
3432
/// 测试 - 实体相等性 - 是否为空
3533
/// </summary>
3634
[Fact]
37-
public void Test_Equals_Null()
35+
public void Equals_Null()
3836
{
3937
Assert.False(_sample.Equals(_sample2));
4038
Assert.False(_sample.Equals(null));
@@ -59,7 +57,7 @@ public void Test_Equals_Null()
5957
/// 测试 - 实体相等性 - 类型无效
6058
/// </summary>
6159
[Fact]
62-
public void Test_Equals_InvalidType()
60+
public void Equals_InvalidType()
6361
{
6462
var id = Guid.NewGuid();
6563
_sample = new AggregateRootSample(id);
@@ -73,7 +71,7 @@ public void Test_Equals_InvalidType()
7371
/// 测试 - 实体相等性 - 当两个实体的标识相同,则实体相同
7472
/// </summary>
7573
[Fact]
76-
public void Test_Equals_IdEquals()
74+
public void Equals_Id_Equals()
7775
{
7876
var id = Guid.NewGuid();
7977
_sample = new AggregateRootSample(id);
@@ -84,10 +82,10 @@ public void Test_Equals_IdEquals()
8482
}
8583

8684
/// <summary>
87-
/// 测试 - 状态输出
85+
/// 测试 - 输出字符串 - 重写方法
8886
/// </summary>
8987
[Fact]
90-
public void Test_ToString()
88+
public void ToString_Override()
9189
{
9290
_sample = new AggregateRootSample { Name = "a" };
9391
Assert.Equal($"Id:{_sample.Id},姓名:{_sample.Name}", _sample.ToString());
@@ -97,20 +95,20 @@ public void Test_ToString()
9795
/// 测试 - 验证 - Id为空,无法通过
9896
/// </summary>
9997
[Fact]
100-
public void Test_Validate_IdIsEmpty()
98+
public void Validate_Id_IsEmpty()
10199
{
102100
AssertHelper.Throws<Warning>(() =>
103101
{
104102
_sample = AggregateRootSample.CreateSample(Guid.Empty);
105103
_sample.Validate();
106-
}, "Id");
104+
}, "标识");
107105
}
108106

109107
/// <summary>
110-
/// 测试 - 验证 -必填项,通过字符串设置错误消息
108+
/// 测试 - 验证 - 必填项,通过字符串设置错误消息
111109
/// </summary>
112110
[Fact]
113-
public void Test_Validate_Required()
111+
public void Validate_Required()
114112
{
115113
AssertHelper.Throws<Warning>(() =>
116114
{
@@ -120,10 +118,10 @@ public void Test_Validate_Required()
120118
}
121119

122120
/// <summary>
123-
/// 测试 -添加验证策略
121+
/// 测试 - 添加验证策略
124122
/// </summary>
125123
[Fact]
126-
public void Test_AddValidateStrategy()
124+
public void Validate_AddValidateStrategy()
127125
{
128126
_sample = AggregateRootSample.CreateSample();
129127
AssertHelper.Throws<Warning>(() =>
@@ -138,7 +136,7 @@ public void Test_AddValidateStrategy()
138136
/// 测试 - 设置验证处理器 - 不进行任何操作,所以不会抛出异常
139137
/// </summary>
140138
[Fact]
141-
public void Test_SetValidationHandler()
139+
public void Validate_SetValidationHandler()
142140
{
143141
_sample = AggregateRootSample.CreateSample();
144142
_sample.Name = "abcd";

framework/tests/Bing.Tests/Domains/IntEntityTest.cs renamed to framework/tests/Bing.Ddd.Domain.Tests/Bing/Domain/Entities/IntEntityTest.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
using Bing.Tests.Samples;
2-
using Xunit;
32

4-
namespace Bing.Tests.Domains;
3+
namespace Bing.Domain.Entities;
54

65
/// <summary>
7-
/// int标识实体测试
6+
/// int 标识实体测试
87
/// </summary>
98
public class IntEntityTest
109
{
@@ -19,7 +18,7 @@ public class IntEntityTest
1918
private IntAggregateRootSample _sample2;
2019

2120
/// <summary>
22-
/// 初始化一个<see cref="IntEntityTest"/>类型的实例
21+
/// 测试初始化
2322
/// </summary>
2423
public IntEntityTest()
2524
{
@@ -31,10 +30,11 @@ public IntEntityTest()
3130
/// 测试 - 实体相等性 - 当两个实体的标识相同,则实体相同
3231
/// </summary>
3332
[Fact]
34-
public void Test_Equals_IdEquals()
33+
public void Equals_Id_Equals()
3534
{
3635
_sample = new IntAggregateRootSample(1);
3736
_sample2 = new IntAggregateRootSample(1);
37+
3838
Assert.True(_sample.Equals(_sample2));
3939
Assert.True(_sample == _sample2);
4040
Assert.False(_sample != _sample2);
@@ -44,22 +44,23 @@ public void Test_Equals_IdEquals()
4444
/// 测试 - 实体相等性 - Id为空
4545
/// </summary>
4646
[Fact]
47-
public void Test_Equals_Id_Empty()
47+
public void Equals_Id_Empty()
4848
{
4949
_sample = new IntAggregateRootSample(0);
5050
_sample2 = new IntAggregateRootSample(1);
51+
5152
Assert.False(_sample.Equals(_sample2));
5253
Assert.False(_sample == _sample2);
5354
Assert.False(_sample2 == _sample);
5455
}
5556

5657
/// <summary>
57-
/// 测试 - 状态输出
58+
/// 测试 - 输出字符串 - 重写方法
5859
/// </summary>
5960
[Fact]
60-
public void Test_ToString()
61+
public void ToString_Override()
6162
{
6263
_sample = new IntAggregateRootSample { Name = "a" };
6364
Assert.Equal($"Id:{_sample.Id},姓名:a", _sample.ToString());
6465
}
65-
}
66+
}

framework/tests/Bing.Tests/Domains/StringEntityTest.cs renamed to framework/tests/Bing.Ddd.Domain.Tests/Bing/Domain/Entities/StringEntityTest.cs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
using Bing.Exceptions;
2+
using Bing.Test.Shared;
23
using Bing.Tests.Samples;
3-
using Bing.Tests.XUnitHelpers;
4-
using Xunit;
54

6-
namespace Bing.Tests.Domains;
5+
namespace Bing.Domain.Entities;
76

87
/// <summary>
9-
/// string标识实体测试
8+
/// string 标识实体测试
109
/// </summary>
1110
public class StringEntityTest
1211
{
@@ -21,7 +20,7 @@ public class StringEntityTest
2120
private StringAggregateRootSample _sample2;
2221

2322
/// <summary>
24-
/// 初始化一个<see cref="StringEntityTest"/>类型的实例
23+
/// 测试初始化
2524
/// </summary>
2625
public StringEntityTest()
2726
{
@@ -30,39 +29,45 @@ public StringEntityTest()
3029
}
3130

3231
/// <summary>
33-
/// 测试 - 实体相等性 -当两个实体的标识相同,则实体相同
32+
/// 测试 - 实体相等性 - 当两个实体的标识相同,则实体相同
3433
/// </summary>
3534
[Fact]
36-
public void Test_Equals_IdEquals()
35+
public void Equals_Id_Equals()
3736
{
3837
_sample = new StringAggregateRootSample("a");
3938
_sample2 = new StringAggregateRootSample("a");
39+
40+
Assert.True(_sample.Equals(_sample2));
41+
Assert.True(_sample == _sample2);
42+
Assert.False(_sample != _sample2);
4043
}
4144

4245
/// <summary>
4346
/// 测试 - 实体相等性 - Id为空
4447
/// </summary>
4548
[Fact]
46-
public void Test_Equals_Id_Null()
49+
public void Equals_Id_Null()
4750
{
4851
_sample = new StringAggregateRootSample(null);
4952
_sample2 = new StringAggregateRootSample("a");
53+
5054
Assert.False(_sample.Equals(_sample2));
5155
Assert.False(_sample == _sample2);
5256
Assert.False(_sample2 == _sample);
5357

5458
_sample = new StringAggregateRootSample("a");
5559
_sample2 = new StringAggregateRootSample(null);
60+
5661
Assert.False(_sample.Equals(_sample2));
5762
Assert.False(_sample == _sample2);
5863
Assert.False(_sample2 == _sample);
5964
}
6065

6166
/// <summary>
62-
/// 测试 - 状态输出
67+
/// 测试 - 输出字符串 - 重写方法
6368
/// </summary>
6469
[Fact]
65-
public void Test_ToString()
70+
public void ToString_Override()
6671
{
6772
_sample = new StringAggregateRootSample { Name = "a" };
6873
Assert.Equal($"Id:{_sample.Id},姓名:a", _sample.ToString());
@@ -72,17 +77,17 @@ public void Test_ToString()
7277
/// 测试 - 验证 - Id为空,无法通过
7378
/// </summary>
7479
[Fact]
75-
public void Test_Validate_IdIsEmpty()
80+
public void Validate_Id_IsEmpty()
7681
{
77-
AssertHelper.Throws<Warning>(() =>
78-
{
82+
AssertHelper.Throws<Warning>(() => {
7983
_sample = new StringAggregateRootSample(null);
8084
_sample.Validate();
81-
}, "Id");
85+
}, "标识");
86+
8287
AssertHelper.Throws<Warning>(() =>
8388
{
8489
_sample = new StringAggregateRootSample("");
8590
_sample.Validate();
86-
}, "Id");
91+
}, "标识");
8792
}
88-
}
93+
}

0 commit comments

Comments
 (0)