Простейшая платежная система на Go, эмулирующая операции с банковскими счетами. Вся информация хранится в оперативной памяти.
- Эмиссия денег: Добавление указанной суммы на специальный "счет эмиссии".
- Уничтожение денег: Списание денег с указанного счета и их перевод на "счет уничтожения".
- Создание нового счета: Генерация уникального номера IBAN и добавление нового счета.
- Перевод денег: Осуществление перевода между двумя счетами.
- Вывод информации о счетах: Отображение списка всех счетов с остатками в формате JSON.
- Обработка ошибок: Обработка ситуаций с недостатком средств, блокировкой счета или отсутствием счета.
- Go 1.20+
-
Клонируйте репозиторий:
git clone https://github.com/Webblurt/PaymentSystem.git cd PaymentSystem
-
Запустите основную программу:
go run payment_system.go
Тесты реализованы с использованием стандартного пакета testing
в Go и покрывают следующие сценарии:
-
Эмиссия денег:
- Проверка успешного добавления денег на "счет эмиссии".
- Проверка ошибки при указании некорректной суммы (отрицательное значение).
-
Создание нового счета:
- Успешное создание нового счета с уникальным IBAN.
-
Перевод денег:
- Проверка успешного перевода между двумя счетами.
- Проверка ошибок:
- Недостаток средств.
- Отсутствие счета.
- Заблокированный счет.
-
Уничтожение денег:
- Успешное списание денег с указанного счета на "счет уничтожения".
- Проверка ошибок:
- Недостаток средств.
- Попытка перевода с несуществующего счета.
- Работа с заблокированным счетом.
-
Вывод списка счетов:
- Проверка корректного форматирования данных о счетах в JSON.
-
Перейдите в директорию проекта
-
Запустите тесты:
go test -v