using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using PolyTrader.Core.Persistence; using PolyTraderSharp.Models; namespace PolyTrader.Tests.Fakes { /// In-Memory-Stub des Entscheidungsjournals – Tests können Journal-Einträge asserten. public sealed class FakeDecisionJournal : IDecisionJournal { public List Written { get; } = new(); public void Write(DecisionRecord record) => Written.Add(record); public List Query(Expression> predicate, int limit = 1000) => Written.Where(predicate.Compile()).Take(limit).ToList(); } /// In-Memory-Stub des Order-Lifecycle-Logs. public sealed class FakeOrderEventLog : IOrderEventLog { public List Written { get; } = new(); public void Write(OrderEventRecord record) => Written.Add(record); public List Query(Expression> predicate, int limit = 1000) => Written.Where(predicate.Compile()).Take(limit).ToList(); } }