Skip to content

Отсутствует валидация параметров в конструкторе SavingAccount #1

Description

@ktokar06

Описание

В конструкторе класса SavingAccount отсутствует проверка валидности передаваемых параметров. Это позволяет создавать объекты с некорректными значениями:

  • Отрицательный минимальный баланс (minBalance < 0)
  • Максимальный баланс меньше минимального (maxBalance < minBalance)
  • Начальный баланс меньше минимального (initialBalance < minBalance)
  • Начальный баланс больше максимального (initialBalance > maxBalance)

Согласно документации, все эти случаи должны выбрасывать исключение IllegalArgumentException.

Локация дефекта

public SavingAccount(int initialBalance, int minBalance, int maxBalance, int rate) {

Image

Шаги воспроизведения

Сценарий 1: Отрицательный минимальный баланс
Создать объект SavingAccount с отрицательным minBalance

Сценарий 2: Максимальный баланс меньше минимального
Создать объект SavingAccount где maxBalance < minBalance

Сценарий 3: Начальный баланс меньше минимального
Создать объект SavingAccount где initialBalance < minBalance

Сценарий 4: Начальный баланс больше максимального
Создать объект SavingAccount где initialBalance > maxBalance

Ожидаемый результат

Выбрасывается исключение IllegalArgumentException.

Фактический результат

Объект успешно создаётся с некорректными параметрами, что нарушает контракт класса.

Тест

shouldThrowExceptionWhenMinBalanceNegative()

shouldThrowExceptionWhenMaxBalanceLessThanMinBalance()

shouldThrowExceptionWhenInitialBalanceLessThanMinBalance()

shouldThrowExceptionWhenInitialBalanceGreaterThanMaxBalance()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions