123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package httpexpect
- import (
- "time"
- )
- // DateTime provides methods to inspect attached time.Time value.
- type DateTime struct {
- chain chain
- value time.Time
- }
- // NewDateTime returns a new DateTime object given a reporter used to report
- // failures and time.Time value to be inspected.
- //
- // reporter should not be nil.
- //
- // Example:
- // dt := NewDateTime(reporter, time.Now())
- // dt.Le(time.Now())
- //
- // time.Sleep(time.Second)
- // dt.Lt(time.Now())
- func NewDateTime(reporter Reporter, value time.Time) *DateTime {
- return &DateTime{makeChain(reporter), value}
- }
- // Raw returns underlying time.Time value attached to DateTime.
- // This is the value originally passed to NewDateTime.
- //
- // Example:
- // dt := NewDateTime(t, timestamp)
- // assert.Equal(t, timestamp, dt.Raw())
- func (dt *DateTime) Raw() time.Time {
- return dt.value
- }
- // Equal succeeds if DateTime is equal to given value.
- //
- // Example:
- // dt := NewDateTime(t, time.Unix(0, 1))
- // dt.Equal(time.Unix(0, 1))
- func (dt *DateTime) Equal(value time.Time) *DateTime {
- if !dt.value.Equal(value) {
- dt.chain.fail("\nexpected datetime equal to:\n %s\n\nbut got:\n %s",
- value, dt.value)
- }
- return dt
- }
- // NotEqual succeeds if DateTime is not equal to given value.
- //
- // Example:
- // dt := NewDateTime(t, time.Unix(0, 1))
- // dt.NotEqual(time.Unix(0, 2))
- func (dt *DateTime) NotEqual(value time.Time) *DateTime {
- if dt.value.Equal(value) {
- dt.chain.fail("\nexpected datetime not equal to:\n %s", value)
- }
- return dt
- }
- // Gt succeeds if DateTime is greater than given value.
- //
- // Example:
- // dt := NewDateTime(t, time.Unix(0, 2))
- // dt.Gt(time.Unix(0, 1))
- func (dt *DateTime) Gt(value time.Time) *DateTime {
- if !dt.value.After(value) {
- dt.chain.fail("\nexpected datetime > then:\n %s\n\nbut got:\n %s",
- value, dt.value)
- }
- return dt
- }
- // Ge succeeds if DateTime is greater than or equal to given value.
- //
- // Example:
- // dt := NewDateTime(t, time.Unix(0, 2))
- // dt.Ge(time.Unix(0, 1))
- func (dt *DateTime) Ge(value time.Time) *DateTime {
- if !(dt.value.After(value) || dt.value.Equal(value)) {
- dt.chain.fail("\nexpected datetime >= then:\n %s\n\nbut got:\n %s",
- value, dt.value)
- }
- return dt
- }
- // Lt succeeds if DateTime is lesser than given value.
- //
- // Example:
- // dt := NewDateTime(t, time.Unix(0, 1))
- // dt.Lt(time.Unix(0, 2))
- func (dt *DateTime) Lt(value time.Time) *DateTime {
- if !dt.value.Before(value) {
- dt.chain.fail("\nexpected datetime < then:\n %s\n\nbut got:\n %s",
- value, dt.value)
- }
- return dt
- }
- // Le succeeds if DateTime is lesser than or equal to given value.
- //
- // Example:
- // dt := NewDateTime(t, time.Unix(0, 1))
- // dt.Le(time.Unix(0, 2))
- func (dt *DateTime) Le(value time.Time) *DateTime {
- if !(dt.value.Before(value) || dt.value.Equal(value)) {
- dt.chain.fail("\nexpected datetime <= then:\n %s\n\nbut got:\n %s",
- value, dt.value)
- }
- return dt
- }
- // InRange succeeds if DateTime is in given range [min; max].
- //
- // Example:
- // dt := NewDateTime(t, time.Unix(0, 2))
- // dt.InRange(time.Unix(0, 1), time.Unix(0, 3))
- // dt.InRange(time.Unix(0, 2), time.Unix(0, 2))
- func (dt *DateTime) InRange(min, max time.Time) *DateTime {
- if !((dt.value.After(min) || dt.value.Equal(min)) &&
- (dt.value.Before(max) || dt.value.Equal(max))) {
- dt.chain.fail(
- "\nexpected datetime in range:\n min: %s\n max: %s\n\nbut got: %s",
- min, max, dt.value)
- }
- return dt
- }
|