diff --git a/src/Umbraco.Core/Models/RelationType.cs b/src/Umbraco.Core/Models/RelationType.cs
index 28290685c2..4c676feed6 100644
--- a/src/Umbraco.Core/Models/RelationType.cs
+++ b/src/Umbraco.Core/Models/RelationType.cs
@@ -31,8 +31,6 @@ namespace Umbraco.Core.Models
_childObjectType = childObjectType;
}
-
-
///
/// Gets or sets the Name of the RelationType
///
diff --git a/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs b/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs
index cce3b88470..c105a8bded 100644
--- a/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs
+++ b/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs
@@ -33,6 +33,13 @@ namespace Umbraco.Tests.Common.Builders.Extensions
return builder;
}
+ public static T WithDeleteDate(this T builder, DateTime deleteDate)
+ where T : IWithDeleteDateBuilder
+ {
+ builder.DeleteDate = deleteDate;
+ return builder;
+ }
+
public static T WithAlias(this T builder, string alias)
where T : IWithAliasBuilder
{
diff --git a/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs
index b01b8a1680..357e701d1b 100644
--- a/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs
@@ -10,7 +10,7 @@ using Umbraco.Tests.Common.Builders.Interfaces;
namespace Umbraco.Tests.Common.Builders
{
public class MemberTypeBuilder
- : ChildBuilderBase,
+ : ChildBuilderBase,
IWithIdBuilder,
IWithAliasBuilder,
IWithNameBuilder,
@@ -97,7 +97,7 @@ namespace Umbraco.Tests.Common.Builders
return builder;
}
- public override MemberType Build()
+ public override IMemberType Build()
{
var id = _id ?? 1;
var name = _name ?? Guid.NewGuid().ToString();
diff --git a/src/Umbraco.Tests.Common/Builders/RelationBuilder.cs b/src/Umbraco.Tests.Common/Builders/RelationBuilder.cs
new file mode 100644
index 0000000000..2cea234200
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/RelationBuilder.cs
@@ -0,0 +1,95 @@
+using System;
+using Umbraco.Core.Models;
+using Umbraco.Tests.Common.Builders.Interfaces;
+
+namespace Umbraco.Tests.Common.Builders
+{
+ public class RelationBuilder
+ : BuilderBase,
+ IWithIdBuilder,
+ IWithKeyBuilder,
+ IWithCreateDateBuilder,
+ IWithUpdateDateBuilder
+ {
+ private RelationTypeBuilder _relationTypeBuilder;
+
+ private int? _id;
+ private int? _parentId;
+ private int? _childId;
+ private Guid? _key;
+ private DateTime? _createDate;
+ private DateTime? _updateDate;
+ private string _comment;
+
+ public RelationBuilder WithComment(string comment)
+ {
+ _comment = comment;
+ return this;
+ }
+
+ public RelationBuilder BetweenIds(int parentId, int childId)
+ {
+ _parentId = parentId;
+ _childId = childId;
+ return this;
+ }
+
+ public RelationTypeBuilder AddRelationType()
+ {
+ var builder = new RelationTypeBuilder(this);
+ _relationTypeBuilder = builder;
+ return builder;
+ }
+
+ public override Relation Build()
+ {
+ var id = _id ?? 0;
+ var parentId = _parentId ?? 0;
+ var childId = _childId ?? 0;
+ var key = _key ?? Guid.NewGuid();
+ var createDate = _createDate ?? DateTime.Now;
+ var updateDate = _updateDate ?? DateTime.Now;
+ var comment = _comment ?? string.Empty;
+
+ if (_relationTypeBuilder == null)
+ {
+ throw new InvalidOperationException("Cannot construct a Relation without a RelationType. Use AddRelationType().");
+ }
+
+ var relationType = _relationTypeBuilder.Build();
+
+ return new Relation(parentId, childId, relationType)
+ {
+ Comment = comment,
+ CreateDate = createDate,
+ Id = id,
+ Key = key,
+ UpdateDate = updateDate
+ };
+ }
+
+ int? IWithIdBuilder.Id
+ {
+ get => _id;
+ set => _id = value;
+ }
+
+ Guid? IWithKeyBuilder.Key
+ {
+ get => _key;
+ set => _key = value;
+ }
+
+ DateTime? IWithCreateDateBuilder.CreateDate
+ {
+ get => _createDate;
+ set => _createDate = value;
+ }
+
+ DateTime? IWithUpdateDateBuilder.UpdateDate
+ {
+ get => _updateDate;
+ set => _updateDate = value;
+ }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs
index 4ad39c6641..677d02bf09 100644
--- a/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs
@@ -4,15 +4,8 @@ using Umbraco.Tests.Common.Builders.Interfaces;
namespace Umbraco.Tests.Common.Builders
{
- public class RelationTypeBuilder : RelationTypeBuilder