// Copyright (c) 2015-2022 MinIO, Inc. // // This file is part of MinIO Object Storage stack // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . // Package amztime implements AWS specific time parsing and deviations package amztime import ( "errors" "testing" "time" ) func TestParse(t *testing.T) { type testCase struct { expectedErr error expectedTime time.Time timeStr string } testCases := []testCase{ { ErrMalformedDate, time.Time{}, "Tue Sep 6 07:10:23 PM PDT 2022", }, { nil, time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC), "Tue, 10 Nov 2009 23:00:00 UTC", }, } for _, testCase := range testCases { testCase := testCase t.Run(testCase.timeStr, func(t *testing.T) { gott, goterr := Parse(testCase.timeStr) if !errors.Is(goterr, testCase.expectedErr) { t.Errorf("expected %v, got %v", testCase.expectedErr, goterr) } if !gott.Equal(testCase.expectedTime) { t.Errorf("expected %v, got %v", testCase.expectedTime, gott) } }) } }