FakeTranscripteurLocal.swift 33 lignes · 1046 octets
import Foundation
@testable import Card2vcf

/// Faux TranscripteurLocal pour les tests.
/// Enregistre tous les appels pour vérification ultérieure.
final class FakeTranscripteurLocal: TranscripteurLocal {
    var etat: EtatTranscripteur = .disponible

    /// Échantillons reçus par accepterEchantillons, dans l'ordre d'appel.
    private(set) var echantillonsRecus: [[Int16]] = []
    /// File de résultats partiels à retourner (FIFO). nil si vide.
    var resultatsPartiels: [String?] = []
    /// Texte retourné par finaliser().
    var resultatFinal: String = ""
    private(set) var nombreReinit: Int = 0

    func accepterEchantillons(_ data: [Int16]) -> String? {
        echantillonsRecus.append(data)
        if !resultatsPartiels.isEmpty {
            return resultatsPartiels.removeFirst()
        }
        return nil
    }

    func finaliser() -> String { resultatFinal }

    func reinitialiser() {
        echantillonsRecus = []
        resultatsPartiels = []
        resultatFinal = ""
        nombreReinit += 1
    }
}