58 lines
1.9 KiB
C#
58 lines
1.9 KiB
C#
|
|
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|