Files
Umbraco-CMS/tests/Umbraco.Tests.Common/Extensions/ContentBaseExtensions.cs
Nikolaj Geisle 7aeb400fce V10: fix build warnings in test projects (#12509)
* Run code cleanup

* Dotnet format benchmarks project

* Fix up Test.Common

* Run dotnet format + manual cleanup

* Run code cleanup for unit tests

* Run dotnet format

* Fix up errors

* Manual cleanup of Unit test project

* Update tests/Umbraco.Tests.Benchmarks/HexStringBenchmarks.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Integration/Testing/TestDbMeta.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Benchmarks/TypeFinderBenchmarks.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Update tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Fix according to review

* Fix after merge

* Fix errors

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-06-21 08:09:38 +02:00

38 lines
1.2 KiB
C#

// Copyright (c) Umbraco.
// See LICENSE for more details.
using System;
using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Tests.Common.Extensions;
public static class ContentBaseExtensions
{
/// <summary>
/// Set property values by alias with an anonymous object.
/// </summary>
/// <remarks>Does not support variants.</remarks>
public static void PropertyValues(this IContentBase content, object value, string? culture = null, string? segment = null)
{
if (value == null)
{
throw new Exception("No properties has been passed in");
}
var propertyInfos = value.GetType().GetProperties();
foreach (var propertyInfo in propertyInfos)
{
if (!content.Properties.TryGetValue(propertyInfo.Name, out var property))
{
throw new Exception(
$"The property alias {propertyInfo.Name} is not valid, because no PropertyType with this alias exists");
}
property.SetValue(propertyInfo.GetValue(value, null), culture, segment);
// Update item with newly added value
content.Properties.Add(property);
}
}
}