mirror of
https://github.com/minio/mc.git
synced 2025-11-10 13:42:32 +03:00
83 lines
2.3 KiB
Go
83 lines
2.3 KiB
Go
/*
|
|
* MinIO Cloud Storage, (C) 2016 MinIO, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package ioutils_test
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/minio/mc/pkg/ioutils"
|
|
|
|
. "gopkg.in/check.v1"
|
|
)
|
|
|
|
func Test(t *testing.T) { TestingT(t) }
|
|
|
|
type MySuite struct{}
|
|
|
|
var _ = Suite(&MySuite{})
|
|
|
|
func (s *MySuite) TestIoutils(c *C) {
|
|
path, err := ioutil.TempDir(os.TempDir(), "minio-ioutils_test")
|
|
c.Assert(err, IsNil)
|
|
defer os.RemoveAll(path)
|
|
|
|
status, err := ioutils.IsDirEmpty(path)
|
|
c.Assert(err, IsNil)
|
|
c.Assert(status, Equals, true)
|
|
}
|
|
|
|
// Test for ParseDurationTime. Validates the returned value
|
|
// for given time value in days, hours and minute format.
|
|
func TestParseDurationTime(t *testing.T) {
|
|
|
|
testCases := []struct {
|
|
timeValue string
|
|
expected time.Duration
|
|
err string
|
|
}{
|
|
// Test 1: empty string as input
|
|
{"", 0, "time: invalid duration "},
|
|
// Test 2: Input string contains 4 day, 10 hour and 3 minutes
|
|
{"4d10h3m", 381780000000000, ""},
|
|
// Test 3: Input string contains 10 day and 3 hours
|
|
{"10d3h", 874800000000000, ""},
|
|
// Test 4: Input string contains minutes and days
|
|
{"3m7d", 604980000000000, ""},
|
|
// Test 5: Input string contains unknown unit
|
|
{"4a3d", 0, "time: unknown unit a in duration 4a3d"},
|
|
// Test 6: Input string contains fractional day
|
|
{"1.5d", 129600000000000, ""},
|
|
// Test 6: Input string contains fractional day and hour
|
|
{"2.5d1.5h", 221400000000000, ""},
|
|
// Test 7: Input string contains fractional day , hour and minute
|
|
{"2.5d1.5h3.5m", 221610000000000, ""},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
myVal, err := ioutils.ParseDurationTime(testCase.timeValue)
|
|
if err != nil && err.Error() != testCase.err {
|
|
t.Error()
|
|
}
|
|
if myVal != testCase.expected {
|
|
t.Error()
|
|
}
|
|
}
|
|
}
|