/
weerci
/
Func
Обзор
Документация
Войти
/
weerci
/
Func
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FuncTest/SettingsTest.cs
55 строк
2 KB
Dimitiry
+++
26 май 2025, 11:53
26 май 2025, 11:53
118ffa0
Код
Авторство
О чём код?
using Func; using Func.Impl; using Func.Services; using Microsoft.Extensions.DependencyInjection; using System.Text.Json.Serialization; using System.Text.Json.Serialization.Metadata; namespace FuncTest; public class SettingTest { [Fact] public void IoC_Settings_Test() { var services = new ServiceCollection() .AddTransient<IEnvironmentService, EnvironmentService>() .AddTransient<ISerializationService, SerializationService>() .AddTransient<IJsonTypeInfoResolver, SourceGenerationContext>() .AddTransient<ISettingsProvider<AppSettings>, SettingsProvider<AppSettings>>(); using var serviceProvider = services.BuildServiceProvider(); var settings = serviceProvider.GetService<ISettingsProvider<AppSettings>>(); var env = serviceProvider.GetService<IEnvironmentService>(); Assert.Equal("test", settings?.Value.Name); Assert.Equal(123, settings?.Value.Value); Assert.Equal("C:\\temp\\Func\\FuncTest\\bin\\Release\\net8.0\\", env?.AppDirectory); var file = FileName.OpenOrCreate(env?.AppDirectory + "App.set"); var res = settings?.Save(file); Assert.True(res?.IsSuccess); var v = settings!.Load(file); Assert.True(v.IsSuccess); file.Delete(); Assert.False(file.Exists()); } } // простой вывод на консоль public class AppSettings { public string Name { get; set; } = "test"; public int Value { get; set; } = 123; } [JsonSerializable(typeof(AppSettings))] public partial class SourceGenerationContext : JsonSerializerContext { }