47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
using LehrerApp.Desktop.Services;
|
|
using Xunit;
|
|
|
|
namespace LehrerApp.Desktop.Tests;
|
|
|
|
public sealed class AnnualPlanSettingsServiceTests
|
|
{
|
|
private const string SampleUrl = "https://example.org/export.php?type=ics&token=intern";
|
|
|
|
private static string TempPath()
|
|
{
|
|
var path = Path.Combine(Path.GetTempPath(), $"lehrerapp-annualplansettingssvc-tests-{Guid.NewGuid():N}");
|
|
Directory.CreateDirectory(path);
|
|
return path;
|
|
}
|
|
|
|
[Fact]
|
|
public void IcalUrl_WirdVerschluesseltPersistiertUndWiederGeladen()
|
|
{
|
|
var path = TempPath();
|
|
var service = new AnnualPlanSettingsService(path);
|
|
service.SetIcalUrl(SampleUrl);
|
|
service.SetEnabled(true);
|
|
|
|
var raw = File.ReadAllText(Path.Combine(path, "annual-plan-settings.json"));
|
|
var reloaded = new AnnualPlanSettingsService(path);
|
|
|
|
Assert.DoesNotContain("token=intern", raw);
|
|
Assert.Equal(SampleUrl, reloaded.GetIcalUrl());
|
|
Assert.True(reloaded.Enabled);
|
|
}
|
|
|
|
[Fact]
|
|
public void ClearIcalUrl_EntferntUrlUndDeaktiviertDenImport()
|
|
{
|
|
var service = new AnnualPlanSettingsService(TempPath());
|
|
service.SetIcalUrl(SampleUrl);
|
|
service.SetEnabled(true);
|
|
|
|
service.ClearIcalUrl();
|
|
|
|
Assert.False(service.IsConfigured);
|
|
Assert.False(service.Enabled);
|
|
Assert.Null(service.GetIcalUrl());
|
|
}
|
|
}
|