Files

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 операция завершается успешно, удалив ноль элементов