namespace Util.Domains
{
/// <summary>
/// 领域实体基类
/// </summary>
public abstract class EntityBase : EntityBase<Guid>
{
/// <summary>
/// 初始化领域实体
/// </summary>
/// <param name="id">标识</param>
protected EntityBase( Guid id )
: base( id ) {
}
}
}
using System;
namespace Util.Domains.Tests.Samples {
/// <summary>
/// 测试实体
/// </summary>
public class Test : EntityBase {
/// <summary>
/// 初始化
/// </summary>
public Test()
: this( Guid.NewGuid() ) {
}
/// <summary>
/// 初始化员工
/// </summary>
/// <param name="id">员工编号</param>
public Test( Guid id )
: base( id ) {
}
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 添加描述
/// </summary>
protected override void AddDescriptions() {
AddDescription( "Id:"+ Id + "," );
AddDescription( "姓名", Name );
}
}
}
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Util.Domains.Tests.Samples;
namespace Util.Domains.Tests {
/// <summary>
/// 实体基类测试
/// </summary>
[TestClass]
public class EntityBaseTest {
/// <summary>
/// 测试实体1
/// </summary>
private Test _test1;
/// <summary>
/// 测试实体2
/// </summary>
private Test _test2;
/// <summary>
/// 测试初始化
/// </summary>
[TestInitialize]
public void TestInit() {
_test1 = new Test();
_test2 = new Test();
}
/// <summary>
/// 通过构造方法设置标识
/// </summary>
[TestMethod]
public void TestId() {
Guid id = Guid.NewGuid();
_test1 = new Test( id );
Assert.AreEqual( id, _test1.Id );
}
/// <summary>
/// 新创建的实体不相等
/// </summary>
[TestMethod]
public void TestNewEntityIsNotEquals() {
Assert.IsFalse( _test1.Equals( _test2 ) );
Assert.IsFalse( _test1.Equals( null ) );
Assert.IsFalse( _test1 == _test2 );
Assert.IsFalse( _test1 == null );
Assert.IsFalse( null == _test2 );
Assert.IsTrue( _test1 != _test2 );
Assert.IsTrue( _test1 != null );
Assert.IsTrue( null != _test2 );
}
/// <summary>
/// 当两个实体的标识相同,则实体相同
/// </summary>
[TestMethod]
public void TestEntityEq