github.com/crewjam/saml@v0.4.14/time_test.go (about)

     1  package saml
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/google/go-cmp/cmp"
     8  
     9  	"gotest.tools/assert"
    10  	is "gotest.tools/assert/cmp"
    11  )
    12  
    13  func TestRelaxedTimeFormat(t *testing.T) {
    14  	rt := time.Date(1981, 02, 03, 14, 15, 16, 17, time.UTC)
    15  	assert.Check(t, is.Equal("1981-02-03T14:15:16Z", RelaxedTime(rt).String()))
    16  
    17  	buf, err := RelaxedTime(rt).MarshalText()
    18  	assert.Check(t, err)
    19  	assert.Check(t, is.Equal("1981-02-03T14:15:16Z", string(buf)))
    20  
    21  	loc, err := time.LoadLocation("America/New_York")
    22  	assert.Check(t, err)
    23  	rt = time.Date(1981, 02, 03, 9, 15, 16, 17, loc)
    24  
    25  	assert.Check(t, is.Equal("1981-02-03T14:15:16Z", RelaxedTime(rt).String()))
    26  	buf, err = RelaxedTime(rt).MarshalText()
    27  	assert.Check(t, err)
    28  	assert.Check(t, is.Equal("1981-02-03T14:15:16Z", string(buf)))
    29  }
    30  
    31  func TestRelaxedTimeParse(t *testing.T) {
    32  	{
    33  		var rt RelaxedTime
    34  		err := rt.UnmarshalText([]byte("1981-02-03T14:15:16Z"))
    35  		assert.Check(t, err)
    36  		assert.Check(t, is.DeepEqual(
    37  			RelaxedTime(time.Date(1981, 02, 03, 14, 15, 16, 0, time.UTC)),
    38  			rt, cmp.AllowUnexported(RelaxedTime{})))
    39  	}
    40  
    41  	{
    42  		var rt RelaxedTime
    43  		err := rt.UnmarshalText([]byte("1981-02-03T14:15:16.178901234Z"))
    44  		assert.Check(t, err)
    45  		assert.Check(t, is.DeepEqual(RelaxedTime(time.Date(1981, 02, 03, 14, 15, 16, 179000000, time.UTC)),
    46  			rt, cmp.AllowUnexported(RelaxedTime{})))
    47  	}
    48  	{
    49  		var rt RelaxedTime
    50  		err := rt.UnmarshalText([]byte("1981-02-03T14:15:16.1717Z"))
    51  		assert.Check(t, err)
    52  		assert.Check(t, is.DeepEqual(RelaxedTime(time.Date(1981, 02, 03, 14, 15, 16, 172000000, time.UTC)),
    53  			rt, cmp.AllowUnexported(RelaxedTime{})))
    54  	}
    55  	{
    56  		var rt RelaxedTime
    57  		err := rt.UnmarshalText([]byte("1981-02-03T14:15:16Z04:00"))
    58  		assert.Check(t, is.Error(err,
    59  			"parsing time \"1981-02-03T14:15:16Z04:00\": extra text: \"04:00\""))
    60  	}
    61  }