/** * In-Memory Rating Repository * * In-memory implementation of RatingRepository for testing purposes. */ import { RatingRepository } from '../../../../core/rating/ports/RatingRepository'; import { Rating } from '../../../../core/rating/domain/Rating'; export class InMemoryRatingRepository implements RatingRepository { private ratings: Map = new Map(); async save(rating: Rating): Promise { const key = `${rating.driverId.toString()}-${rating.raceId.toString()}`; this.ratings.set(key, rating); } async findByDriverAndRace(driverId: string, raceId: string): Promise { const key = `${driverId}-${raceId}`; return this.ratings.get(key) || null; } async findByDriver(driverId: string): Promise { return Array.from(this.ratings.values()).filter( rating => rating.driverId.toString() === driverId ); } async findByRace(raceId: string): Promise { return Array.from(this.ratings.values()).filter( rating => rating.raceId.toString() === raceId ); } async clear(): Promise { this.ratings.clear(); } }