diff --git a/src/Umbraco.Core/Deploy/ArtifactBase.cs b/src/Umbraco.Core/Deploy/ArtifactBase.cs
index 7c6f4c1814..25457adcdf 100644
--- a/src/Umbraco.Core/Deploy/ArtifactBase.cs
+++ b/src/Umbraco.Core/Deploy/ArtifactBase.cs
@@ -1,22 +1,18 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
-using System.Runtime.Serialization;
namespace Umbraco.Cms.Core.Deploy
{
///
/// Provides a base class to all artifacts.
///
- [DataContract]
public abstract class ArtifactBase : IArtifact
where TUdi : Udi
{
protected ArtifactBase(TUdi udi, IEnumerable dependencies = null)
{
- if (udi == null)
- throw new ArgumentNullException("udi");
- Udi = udi;
+ Udi = udi ?? throw new ArgumentNullException("udi");
Name = Udi.ToString();
Dependencies = dependencies ?? Enumerable.Empty();
@@ -24,38 +20,31 @@ namespace Umbraco.Cms.Core.Deploy
}
private readonly Lazy _checksum;
+
private IEnumerable _dependencies;
protected abstract string GetChecksum();
#region Abstract implementation of IArtifactSignature
- Udi IArtifactSignature.Udi
- {
- get { return Udi; }
- }
+ Udi IArtifactSignature.Udi => Udi;
- [DataMember]
public TUdi Udi { get; set; }
- [IgnoreDataMember]
- public string Checksum
- {
- get { return _checksum.Value; }
- }
+ public string Checksum => _checksum.Value;
+
+ public bool ShouldSerializeChecksum() => false;
- [DataMember]
public IEnumerable Dependencies
{
- get { return _dependencies; }
- set { _dependencies = value.OrderBy(x => x.Udi); }
+ get => _dependencies;
+ set => _dependencies = value.OrderBy(x => x.Udi);
}
#endregion
- [DataMember]
public string Name { get; set; }
- [DataMember]
+
public string Alias { get; set; }
}
}
diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Deploy/ArtifactBaseTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Deploy/ArtifactBaseTests.cs
new file mode 100644
index 0000000000..1a2ffa8011
--- /dev/null
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Deploy/ArtifactBaseTests.cs
@@ -0,0 +1,41 @@
+// Copyright (c) Umbraco.
+// See LICENSE for more details.
+
+using System;
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using NUnit.Framework;
+using Umbraco.Cms.Core;
+using Umbraco.Cms.Core.Deploy;
+
+namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Deploy
+{
+ [TestFixture]
+ public class ArtifactBaseTests
+ {
+ [Test]
+ public void CanSerialize()
+ {
+ var udi = new GuidUdi("test", Guid.Parse("3382d5433b5749d08919bc9961422a1f"));
+ var artifact = new TestArtifact(udi, new List())
+ {
+ Name = "Test Name",
+ Alias = "testAlias",
+ };
+
+ var serialized = JsonConvert.SerializeObject(artifact);
+
+ var expected = "{\"Udi\":\"umb://test/3382d5433b5749d08919bc9961422a1f\",\"Dependencies\":[],\"Name\":\"Test Name\",\"Alias\":\"testAlias\"}";
+ Assert.AreEqual(expected, serialized);
+ }
+
+ private class TestArtifact : ArtifactBase
+ {
+ public TestArtifact(GuidUdi udi, IEnumerable dependencies = null) : base(udi, dependencies)
+ {
+ }
+
+ protected override string GetChecksum() => "test checksum value";
+ }
+ }
+}