Skip to content
This repository has been archived by the owner on Sep 27, 2022. It is now read-only.

Latest commit

 

History

History
62 lines (48 loc) · 3.11 KB

04-JUnit.md

File metadata and controls

62 lines (48 loc) · 3.11 KB

JUnit

В базу данных добавляется механизм транзакций. Изменения не записываются на диск до выполнения команды commit. Если пользователь хочет отменить изменения, сделанные с момента последнего вызова команды commit (например, если пользователь ошибся во вводе), то должна быть возможность откатить все эти изменения с помощью команды rollback.

Теперь приложение, помимо возможности запуска из командной строки, может быть запущено в рамках другого приложения (как библиотека). Библиотека должна реализовывать соответствующие интерфейсы, объявленные в пакете ru.fizteh.fivt.storage.strings (Table, TableProvider, TableProviderFactory).

Каждый метод каждого интерфейса должен быть покрыт модульными тестами (с помощью JUnit). Для классов-реализаций интерфейсов, где это разумно, также должны быть написаны тесты.

Предполагаемое использование.

Контракт превращает ваше приложение в стороннюю библиотеку. Пользователь создает экземпляр вашей реализации TableProviderFactory конструктором по умолчанию. Эта фабрика нужна для того, чтобы создать экземпляр TableProvider с указанием пути до корня хранилища. Пользуясь экземпляром TableProvider, пользователь может создать или открыть одну или несколько таблиц. Получив экземпляр таблицы, пользователь вызывает нужные ему методы для работы с данными.

Добавляются следующие команды

size

size

Вывести число хранимых пар ключ-значение:

6

commit

commit

Записать изменения на диск. Вывод - число измененных значений:

int

rollback

rollback

Откатить все изменения до предыдущего коммита (или до состояния на момент начала программы). Вывод - число откаченных изменений:

int

Изменения в командах:

use

Если есть незакоммиченные изменения, команда должна выдавать сообщение об ошибке:

5 unsaved changes