dubbo.apache.org/dubbo-go/v3@v3.1.1/xds/utils/grpcutil/encode_duration_test.go (about)

     1  /*
     2   * Licensed to the Apache Software Foundation (ASF) under one or more
     3   * contributor license agreements.  See the NOTICE file distributed with
     4   * this work for additional information regarding copyright ownership.
     5   * The ASF licenses this file to You under the Apache License, Version 2.0
     6   * (the "License"); you may not use this file except in compliance with
     7   * the License.  You may obtain a copy of the License at
     8   *
     9   *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  
    18  /*
    19   *
    20   * Copyright 2020 gRPC authors.
    21   *
    22   */
    23  
    24  package grpcutil
    25  
    26  import (
    27  	"testing"
    28  	"time"
    29  )
    30  
    31  func TestEncodeDuration(t *testing.T) {
    32  	for _, test := range []struct {
    33  		in  string
    34  		out string
    35  	}{
    36  		{"12345678ns", "12345678n"},
    37  		{"123456789ns", "123457u"},
    38  		{"12345678us", "12345678u"},
    39  		{"123456789us", "123457m"},
    40  		{"12345678ms", "12345678m"},
    41  		{"123456789ms", "123457S"},
    42  		{"12345678s", "12345678S"},
    43  		{"123456789s", "2057614M"},
    44  		{"12345678m", "12345678M"},
    45  		{"123456789m", "2057614H"},
    46  	} {
    47  		d, err := time.ParseDuration(test.in)
    48  		if err != nil {
    49  			t.Fatalf("failed to parse duration string %s: %v", test.in, err)
    50  		}
    51  		out := EncodeDuration(d)
    52  		if out != test.out {
    53  			t.Fatalf("timeoutEncode(%s) = %s, want %s", test.in, out, test.out)
    54  		}
    55  	}
    56  }