Added more tests for AuditPropertySetter.

pull/272/head
Halil İbrahim Kalkan 8 years ago
parent 3b84fc3392
commit a7d0a81446

@ -43,8 +43,14 @@ namespace Volo.Abp.Auditing
);
}
public class MyAuditedObject : IFullAudited
public class MyEmptyObject
{
}
public class MyAuditedObject : IMultiTenant, IFullAudited
{
public Guid? TenantId { get; set; }
public DateTime CreationTime { get; set; }
public Guid? CreatorId { get; set; }
public DateTime? LastModificationTime { get; set; }

@ -6,12 +6,27 @@ namespace Volo.Abp.Auditing
{
public class AuditPropertySetter_CreationAudit_Tests : AuditPropertySetterTestBase
{
[Fact]
public void Should_Do_Nothing_For_Non_Audited_Entity()
{
AuditPropertySetter.SetCreationAuditProperties(new MyEmptyObject());
}
[Fact]
public void Should_Set_CreationTime()
{
AuditPropertySetter.SetCreationAuditProperties(TargetObject);
TargetObject.CreationTime.ShouldNotBe(default);
TargetObject.CreationTime.ShouldBe(Now);
}
[Fact]
public void Should_Not_Set_CreatorId_If_Current_User_Is_Not_Available()
{
AuditPropertySetter.SetCreationAuditProperties(TargetObject);
TargetObject.CreationTime.ShouldBe(Now);
TargetObject.CreatorId.ShouldBe(null);
}
[Fact]
@ -21,8 +36,52 @@ namespace Volo.Abp.Auditing
AuditPropertySetter.SetCreationAuditProperties(TargetObject);
TargetObject.CreationTime.ShouldNotBe(default);
TargetObject.CreationTime.ShouldBe(Now);
TargetObject.CreatorId.ShouldBe(CurrentUserId);
}
[Fact]
public void Should_Not_Set_CreatorId_If_It_Is_Already_Set()
{
var oldCreatorUserId = Guid.NewGuid();
CurrentUserId = Guid.NewGuid();
TargetObject.CreatorId = oldCreatorUserId;
AuditPropertySetter.SetCreationAuditProperties(TargetObject);
TargetObject.CreationTime.ShouldBe(Now);
TargetObject.CreatorId.ShouldBe(oldCreatorUserId);
}
[Fact]
public void Should_Set_CreatorId_If_Entity_Tenant_Is_Same_With_Current_User_Tenant()
{
CurrentTenantId = Guid.NewGuid();
CurrentUserId = Guid.NewGuid();
CurrentUserTenantId = CurrentTenantId;
TargetObject.TenantId = CurrentTenantId;
AuditPropertySetter.SetCreationAuditProperties(TargetObject);
TargetObject.CreationTime.ShouldBe(Now);
TargetObject.CreatorId.ShouldBe(CurrentUserId);
}
[Fact]
public void Should_Not_Set_CreatorId_If_Entity_Tenant_Is_Different_From_Current_User_Tenant()
{
CurrentTenantId = Guid.NewGuid();
CurrentUserId = Guid.NewGuid();
CurrentUserTenantId = CurrentTenantId;
TargetObject.TenantId = Guid.NewGuid();
AuditPropertySetter.SetCreationAuditProperties(TargetObject);
TargetObject.CreationTime.ShouldBe(Now);
TargetObject.CreatorId.ShouldBe(null);
}
}
}

@ -0,0 +1,87 @@
using System;
using Shouldly;
using Xunit;
namespace Volo.Abp.Auditing
{
public class AuditPropertySetter_ModificationAudit_Tests : AuditPropertySetterTestBase
{
[Fact]
public void Should_Do_Nothing_For_Non_Audited_Entity()
{
AuditPropertySetter.SetModificationAuditProperties(new MyEmptyObject());
}
[Fact]
public void Should_Set_LastModificationTime()
{
AuditPropertySetter.SetModificationAuditProperties(TargetObject);
TargetObject.LastModificationTime.ShouldBe(Now);
}
[Fact]
public void Should_Clear_LastModifierId_If_Current_User_Is_Not_Available()
{
TargetObject.LastModifierId = Guid.NewGuid();
AuditPropertySetter.SetModificationAuditProperties(TargetObject);
TargetObject.LastModificationTime.ShouldBe(Now);
TargetObject.LastModifierId.ShouldBe(null);
}
[Fact]
public void Should_Set_LastModifierId()
{
CurrentUserId = Guid.NewGuid();
AuditPropertySetter.SetModificationAuditProperties(TargetObject);
TargetObject.LastModificationTime.ShouldBe(Now);
TargetObject.LastModifierId.ShouldBe(CurrentUserId);
}
[Fact]
public void Should_Set_LastModifierId_Again_Even_If_It_Is_Set_Before()
{
CurrentUserId = Guid.NewGuid();
TargetObject.LastModifierId = Guid.NewGuid();
AuditPropertySetter.SetModificationAuditProperties(TargetObject);
TargetObject.LastModificationTime.ShouldBe(Now);
TargetObject.LastModifierId.ShouldBe(CurrentUserId);
}
[Fact]
public void Should_Set_LastModifierId_If_Entity_Tenant_Is_Same_With_Current_User_Tenant()
{
CurrentTenantId = Guid.NewGuid();
CurrentUserId = Guid.NewGuid();
CurrentUserTenantId = CurrentTenantId;
TargetObject.TenantId = CurrentTenantId;
AuditPropertySetter.SetModificationAuditProperties(TargetObject);
TargetObject.LastModificationTime.ShouldBe(Now);
TargetObject.LastModifierId.ShouldBe(CurrentUserId);
}
[Fact]
public void Should_Clear_LastModifierId_If_Entity_Tenant_Is_Different_From_Current_User_Tenant()
{
CurrentTenantId = Guid.NewGuid();
CurrentUserId = Guid.NewGuid();
CurrentUserTenantId = CurrentTenantId;
TargetObject.TenantId = Guid.NewGuid();
TargetObject.LastModifierId = Guid.NewGuid();
AuditPropertySetter.SetModificationAuditProperties(TargetObject);
TargetObject.LastModificationTime.ShouldBe(Now);
TargetObject.LastModifierId.ShouldBe(null);
}
}
}
Loading…
Cancel
Save