github.com/kbehouse/nsc@v0.0.6/cmd/timeparams_test.go (about)

     1  /*
     2   * Copyright 2018 The NATS Authors
     3   * Licensed under the Apache License, Version 2.0 (the "License");
     4   * you may not use this file except in compliance with the License.
     5   * You may obtain a copy of the License at
     6   *
     7   * http://www.apache.org/licenses/LICENSE-2.0
     8   *
     9   * Unless required by applicable law or agreed to in writing, software
    10   * distributed under the License is distributed on an "AS IS" BASIS,
    11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12   * See the License for the specific language governing permissions and
    13   * limitations under the License.
    14   */
    15  
    16  package cmd
    17  
    18  import (
    19  	"testing"
    20  	"time"
    21  )
    22  
    23  func TestParseExpiry(t *testing.T) {
    24  	type testd struct {
    25  		input   string
    26  		output  int64
    27  		isError bool
    28  	}
    29  	tests := []testd{
    30  		{"", 0, false},
    31  		{"0", 0, false},
    32  		{"19-1-6", 0, true},
    33  		{"2019-1-6", 0, true},
    34  		{"2019-01-6", 0, true},
    35  		{"2019-01-06", time.Date(2019, 1, 6, 0, 0, 0, 0, time.UTC).Unix(), false},
    36  		{"1m", time.Now().Unix() + 60, false},
    37  		{"32m", time.Now().Unix() + 60*32, false},
    38  		{"1h", time.Now().Unix() + 60*60, false},
    39  		{"3h", time.Now().Unix() + 60*60*3, false},
    40  		{"1d", time.Now().AddDate(0, 0, 1).Unix(), false},
    41  		{"3d", time.Now().AddDate(0, 0, 3).Unix(), false},
    42  		{"1w", time.Now().AddDate(0, 0, 7).Unix(), false},
    43  		{"3w", time.Now().AddDate(0, 0, 7*3).Unix(), false},
    44  		{"2M", time.Now().AddDate(0, 2, 0).Unix(), false},
    45  		{"2y", time.Now().AddDate(2, 0, 0).Unix(), false},
    46  	}
    47  	for _, d := range tests {
    48  		v, err := ParseExpiry(d.input)
    49  		if err != nil && !d.isError {
    50  			t.Errorf("%s didn't expect error: %v", d.input, err)
    51  			continue
    52  		}
    53  		if err == nil && d.isError {
    54  			t.Errorf("expected error from %s", d.input)
    55  			continue
    56  		}
    57  		if v != d.output {
    58  			t.Errorf("%s expected %d but got %d", d.input, d.output, v)
    59  		}
    60  	}
    61  }