using System; using AutoFixture; using AutoFixture.AutoMoq; using AutoFixture.NUnit3; using Microsoft.AspNetCore.Mvc.ModelBinding; using Moq; using Umbraco.Core.BackOffice; using Umbraco.Core.Configuration; namespace Umbraco.Tests.Common.AutoFixture { [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor)] public class AutoMoqDataAttribute : AutoDataAttribute { public AutoMoqDataAttribute() : base(() => AutoMockCustomizations.Default) { } private static class AutoMockCustomizations { public static IFixture Default => new Fixture().Customize(new UmbracoCustomization()); private class UmbracoCustomization : ICustomization { public void Customize(IFixture fixture) { fixture.Customize(new AutoMoqCustomization()); fixture.Customize(c => c.OmitAutoProperties()); fixture.Customize( u => u.FromFactory( (a,b,c) => BackOfficeIdentityUser.CreateNew(Mock.Of(),a,b,c))); } } } } }