namespace XFEExtension.NetCore.AutoConfig.Tests; [AutoLoadProfile(false)] public partial class XfeRoundTripProfile : XFEProfile { [ProfileProperty] private string value = "default"; } [AutoLoadProfile(false)] public partial class PartialPropertyProfile : XFEProfile { [ProfileProperty] public static partial string Value { get; set; } = "partial-default"; public PartialPropertyProfile() => DefaultProfileOperationMode = ProfileOperationMode.Xml; } [AutoLoadProfile(false)] public partial class PartialPropertyDefaultProfile : XFEProfile { [ProfileProperty] public static partial string Value { get; set; } = "partial-default"; [ProfileProperty] public static partial List Values { get; set; } = []; } [AutoLoadProfile(false)] public partial class JsonRoundTripProfile : XFEProfile { [ProfileProperty] private string value = "default"; public JsonRoundTripProfile() => DefaultProfileOperationMode = ProfileOperationMode.Json; } [AutoLoadProfile(false)] public partial class XmlRoundTripProfile : XFEProfile { [ProfileProperty] private string value = "default"; public XmlRoundTripProfile() => DefaultProfileOperationMode = ProfileOperationMode.Xml; } [AutoLoadProfile(false)] [ProfilePath("custom/settings")] public partial class AttributePathProfile : XFEProfile { [ProfileProperty] private string value = "default"; } [AutoLoadProfile(false)] public partial class DefaultPathProfile : XFEProfile { [ProfileProperty] private int value; } [AutoLoadProfile(false)] public partial class FlushProfile : XFEProfile { [ProfileProperty] private string value = "default"; } [AutoLoadProfile(false)] public partial class CorruptJsonProfile : XFEProfile { [ProfileProperty] private string value = "default"; public CorruptJsonProfile() => DefaultProfileOperationMode = ProfileOperationMode.Json; } [AutoLoadProfile(false)] public partial class FailingSaveProfile : XFEProfile { [ProfileProperty] private string value = "default"; } [AutoLoadProfile(false)] public partial class PathChangeProfile : XFEProfile { [ProfileProperty] private int value; } public sealed class LargeSettingsDocument { public string Name { get; set; } = string.Empty; public Dictionary Metadata { get; set; } = []; public List Items { get; set; } = []; } public sealed class LargeSettingsItem { public int Id { get; set; } public string Name { get; set; } = string.Empty; public double[] Samples { get; set; } = []; } [AutoLoadProfile(false)] public partial class LargeObjectProfile : XFEProfile { [ProfileProperty("Data")] private LargeSettingsDocument data = new(); public LargeObjectProfile() => DefaultProfileOperationMode = ProfileOperationMode.MessagePack; protected override int ProfileSchemaVersion => 1; protected override void ConfigureMigrations(ProfileMigrationBuilder migrations) => migrations.NoOp(0); } [AutoLoadProfile(false)] public partial class UnversionedLargeObjectProfile : XFEProfile { [ProfileProperty("Data")] private LargeSettingsDocument data = new(); public UnversionedLargeObjectProfile() => DefaultProfileOperationMode = ProfileOperationMode.MessagePack; } [AutoLoadProfile(false)] public partial class MigratingLargeObjectProfile : XFEProfile { [ProfileProperty("CurrentData")] private LargeSettingsDocument currentData = new(); public MigratingLargeObjectProfile() => DefaultProfileOperationMode = ProfileOperationMode.MessagePack; protected override int ProfileSchemaVersion => 1; protected override void ConfigureMigrations(ProfileMigrationBuilder migrations) => migrations .RenameProperty(0, "Data", "CurrentData"); }