3.4 KiB
3.4 KiB
Spec Delta
MODIFIED Requirements
Requirement: Корзина фото
Удаление фото SHALL помещать его в корзину (мягкое удаление). Восстановление SHALL возвращать фото в его альбом. Окончательное удаление SHALL удалять запись, а объекты хранилища SHALL удаляться только когда на них не остаётся ссылок ни в одном альбоме. Окончательное удаление SHALL быть доступно и для фото без альбома (например, после удаления альбома).
Scenario: Удаление в корзину
- WHEN пользователь удаляет фото
- THEN фото пропадает из альбома и появляется в корзине
Scenario: Восстановление
- WHEN пользователь восстанавливает фото из корзины
- THEN фото возвращается в свой альбом
Scenario: Окончательное удаление без ссылок
- WHEN пользователь удаляет фото из корзины навсегда, и на те же объекты нет ссылок в других альбомах
- THEN запись и объекты хранилища удаляются
Scenario: Окончательное удаление при наличии ссылок
- WHEN на объект хранилища ссылается копия в другом альбоме
- THEN запись удаляется, а объект хранилища сохраняется
Scenario: Окончательное удаление фото без альбома
- WHEN пользователь удаляет навсегда фото из корзины, у которого нет альбома
- THEN запись удаляется, а операция не завершается ошибкой отсутствующего альбома
ADDED Requirements
Requirement: Очистка корзины
Пользователь SHALL иметь возможность окончательно удалить все элементы корзины одним действием. Система SHALL удалять только те элементы, которые пользователь вправе удалить навсегда, и SHALL пропускать остальные. Операция SHALL возвращать число удалённых элементов.
Scenario: Очистка корзины
- WHEN пользователь очищает корзину
- THEN все элементы, которые он вправе удалить навсегда, удаляются
Scenario: Чужие элементы
- WHEN в корзине есть фото, которые пользователь не вправе удалить навсегда
- THEN они остаются в корзине, а остальные удаляются
Scenario: Пустая корзина
- WHEN пользователь очищает пустую корзину
- THEN операция завершается успешно, удалив ноль элементов