#import "common.typ": pz-table

=== Детальное описание тестов EncryptorTest

Класс `EncryptorTest` — эталонный набор для приёмки криптографического ядра. Каждый метод изолирован и не зависит от порядка выполнения.

#pz-table(
  [Методы EncryptorTest],
  3,
  table.header([Метод], [Проверяемое поведение], [OK]),
  [test correct key for StorageEncryptionInfo], [`checkKey` → true], [+],
  [test incorrect key for StorageEncryptionInfo], [`checkKey` → false], [+],
  [test string encryption with the same key], [Симметрия encrypt/decrypt], [+],
  [test string encryption with the wrong key], [Исключение при decrypt], [+],
  [test bytes encryption with the same key], [Восстановление 512 байт], [+],
  [test bytes encryption with the wrong key], [Исключение], [+],
  [test stream encryption with the same key], [Поток 1500 байт], [+],
  [test stream encryption with the wrong key], [Исключение decryptStream], [+],
) <tbl-encryptor-detail>

Методика: для потоков используется `ByteArrayOutputStream` с запасом ёмкости `dataLen*3`, чтобы учесть расширение ciphertext.

=== Детальное описание тестов StorageSyncEngineTest

Движок синхронизации тестируется на in-memory двойниках хранилищ. Полный реестр методов — в таблице модуля `:usecases` выше.
