using System.Runtime.CompilerServices; using ClawdDotNet.Core.Security; namespace ClawdDotNet.Core.Tests.Infrastructure; /// /// Hält den Schlüssel von aus den Tests heraus. /// /// Zwei Dinge müssen zusammenkommen: /// /// 1. verlegt den Schlüssel einmal beim Laden 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 während 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. /// [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"))); } }