2020-01-29 21:39:37 +00:00
|
|
|
// Copyright (C) 2020 Storj Labs, Inc.
|
|
|
|
// See LICENSE for copying information.
|
|
|
|
|
|
|
|
package payments
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
2020-05-13 18:02:51 +01:00
|
|
|
func TestCoupon_ExpirationDate(t *testing.T) {
|
|
|
|
for _, tt := range []struct {
|
2020-01-29 21:39:37 +00:00
|
|
|
created time.Time
|
2020-05-13 18:02:51 +01:00
|
|
|
duration int
|
|
|
|
expires time.Time
|
2020-01-29 21:39:37 +00:00
|
|
|
}{
|
2020-05-13 18:02:51 +01:00
|
|
|
{
|
|
|
|
created: time.Date(2020, 1, 30, 0, 0, 0, 0, time.UTC), // 2020-01-30 00:00:00 +0000 UTC
|
|
|
|
duration: 0, // sign-up month only
|
|
|
|
expires: time.Date(2020, 2, 0, 0, 0, 0, 0, time.UTC), // 2020-01-31 00:00:00 +0000 UTC
|
|
|
|
},
|
|
|
|
{
|
|
|
|
created: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), // 2020-02-01 00:00:00 +0000 UTC
|
|
|
|
duration: 1, // sign-up month + 1 full month
|
|
|
|
expires: time.Date(2020, 4, 0, 0, 0, 0, 0, time.UTC), // 2020-03-31 00:00:00 +0000 UTC
|
|
|
|
},
|
|
|
|
{
|
|
|
|
created: time.Date(2020, 2, 5, 8, 0, 0, 0, time.UTC), // 2020-02-05 08:00:00 +0000 UTC
|
|
|
|
duration: 2, // sign-up month + 2 full months
|
|
|
|
expires: time.Date(2020, 5, 0, 0, 0, 0, 0, time.UTC), // 2020-04-30 00:00:00 +0000 UTC
|
|
|
|
},
|
|
|
|
} {
|
2020-01-29 21:39:37 +00:00
|
|
|
coupon := Coupon{
|
2020-05-13 18:02:51 +01:00
|
|
|
Duration: tt.duration,
|
|
|
|
Created: tt.created,
|
2020-01-29 21:39:37 +00:00
|
|
|
}
|
2020-05-13 18:02:51 +01:00
|
|
|
require.Equal(t, tt.expires, coupon.ExpirationDate())
|
2020-01-29 21:39:37 +00:00
|
|
|
}
|
|
|
|
}
|