View Source UkraineNbuqrEx.Amount.Validator (ukraine_nbuqr v0.1.0)

Amount.Validator validates amount structs Correct amount must be less than 999_999_999.99 and greater than 0

Summary

Functions

validate/1 validates amount struct

Functions

validate(error)

@spec validate(amount :: UkraineNbuqrEx.Amount.t() | {:error, String.t()}) ::
  UkraineNbuqrEx.Amount.t() | {:error, String.t()}

validate/1 validates amount struct

Examples

    iex> UkraineNbuqrEx.Amount.Validator.validate(%UkraineNbuqrEx.Amount{units: "100", cents: "5"})
    {:ok, %UkraineNbuqrEx.Amount{units: "100", cents: "5"}}

    iex> UkraineNbuqrEx.Amount.Validator.validate(%UkraineNbuqrEx.Amount{units: "999999999", cents: "99"})
    {:ok, %UkraineNbuqrEx.Amount{units: "999999999", cents: "99"}}

    iex> UkraineNbuqrEx.Amount.Validator.validate(%UkraineNbuqrEx.Amount{units: "0", cents: "01"})
    {:ok, %UkraineNbuqrEx.Amount{units: "0", cents: "01"}}

    iex> UkraineNbuqrEx.Amount.Validator.validate(%UkraineNbuqrEx.Amount{units: "1000000000", cents: nil})
    {:error, "Amount greather then 999999999.99"}

    iex> UkraineNbuqrEx.Amount.Validator.validate(%UkraineNbuqrEx.Amount{units: "1000000000", cents: "1"})
    {:error, "Amount greather then 999999999.99"}

    iex> UkraineNbuqrEx.Amount.Validator.validate(%UkraineNbuqrEx.Amount{units: "0", cents: nil})
    {:error, "Zero amount"}