Files
ClawdDotNet/tests/ClawdDotNet.Core.Tests/Infrastructure/SecretKeyCollection.cs
T

34 lines
1.3 KiB
C#

using System.Runtime.CompilerServices;
using ClawdDotNet.Core.Security;
namespace ClawdDotNet.Core.Tests.Infrastructure;
/// <summary>
/// Hält den Schlüssel von <see cref="SecretKeyStore"/> aus den Tests heraus.
///
/// Zwei Dinge müssen zusammenkommen:
///
/// 1. <see cref="Init"/> verlegt den Schlüssel <b>einmal beim Laden</b> der
/// Testassembly in ein Wegwerfverzeichnis. Ohne das würden die Tests den echten
/// Benutzerschlüssel anlegen oder lesen — auf dem Entwicklungsrechner wie auf dem
/// Bauserver.
///
/// 2. Wer den Schlüssel <em>während</em> eines Tests wechselt (etwa um zu prüfen, dass
/// ein fremder Schlüssel nicht liest), muss in dieser Sammlung laufen. Der Speicher
/// ist statisch; ohne abgeschaltete Parallelität zöge ein solcher Wechsel einer
/// gleichzeitig laufenden Klasse den Schlüssel unter den Füßen weg. Genau das ist
/// zwischen den Geheimnis- und den Sicherungstests passiert.
/// </summary>
[CollectionDefinition(Name, DisableParallelization = true)]
public sealed class SecretKeyCollection
{
public const string Name = "SecretKey";
[ModuleInitializer]
internal static void Init()
{
SecretKeyStore.UseDirectory(Path.Combine(
Path.GetTempPath(), "clawd-tests", "keys", Guid.NewGuid().ToString("N")));
}
}