Catalog/MaddoShared.Tests/PickerPreferenceServiceTests.cs

58 lines
1.9 KiB
C#
Raw Normal View History

using System;
using System.IO;
using ImageCatalog;
using ImageCatalog_2.Services;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Shouldly;
namespace MaddoShared.Tests;
[TestClass]
public class PickerPreferenceServiceTests
{
[TestMethod]
public void RememberValue_PersistsExactFilePath()
{
using var tempDirectory = new TemporaryDirectory();
var preferencesFile = Path.Combine(tempDirectory.Path, "userprefs.xml");
var service = new PickerPreferenceService(new ParametriSetup(preferencesFile));
var settingsFile = Path.Combine(tempDirectory.Path, "nested", "settings.xml");
service.RememberValue(PickerPreferenceKeys.LastSettingsFile, settingsFile);
service.GetRememberedValue(PickerPreferenceKeys.LastSettingsFile).ShouldBe(settingsFile);
}
[TestMethod]
public void ForgetValue_RemovesStoredPreference()
{
using var tempDirectory = new TemporaryDirectory();
var preferencesFile = Path.Combine(tempDirectory.Path, "userprefs.xml");
var service = new PickerPreferenceService(new ParametriSetup(preferencesFile));
service.RememberValue(PickerPreferenceKeys.LastSettingsFile, Path.Combine(tempDirectory.Path, "settings.xml"));
service.ForgetValue(PickerPreferenceKeys.LastSettingsFile);
service.GetRememberedValue(PickerPreferenceKeys.LastSettingsFile).ShouldBeNull();
}
private sealed class TemporaryDirectory : IDisposable
{
public TemporaryDirectory()
{
Path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), System.IO.Path.GetRandomFileName());
Directory.CreateDirectory(Path);
}
public string Path { get; }
public void Dispose()
{
if (Directory.Exists(Path))
{
Directory.Delete(Path, recursive: true);
}
}
}
}