Files
Umbraco-CMS/tests/Umbraco.Tests.Common/Builders/PropertyDataBuilder.cs
2021-12-16 13:44:20 +01:00

37 lines
1.3 KiB
C#

using System.Collections.Generic;
using Umbraco.Extensions;
using Umbraco.Cms.Infrastructure.PublishedCache.DataSource;
using System.Linq;
namespace Umbraco.Cms.Tests.Common.Builders
{
public class PropertyDataBuilder : BuilderBase<Dictionary<string, PropertyData[]>>
{
private readonly Dictionary<string, List<PropertyData>> _properties = new();
public PropertyDataBuilder WithPropertyData(string alias, PropertyData propertyData)
{
if (!_properties.TryGetValue(alias, out List<PropertyData> propertyDataCollection))
{
propertyDataCollection = new List<PropertyData>();
_properties[alias] = propertyDataCollection;
}
propertyDataCollection.Add(propertyData);
return this;
}
public PropertyDataBuilder WithPropertyData(string alias, object value, string? culture = null, string? segment = null)
=> WithPropertyData(alias, new PropertyData
{
Culture = culture ?? string.Empty,
Segment = segment ?? string.Empty,
Value = value
});
public override Dictionary<string, PropertyData[]> Build()
=> _properties.ToDictionary(x => x.Key, x => x.Value.ToArray());
}
}