github.com/altipla-consulting/ravendb-go-client@v0.1.3/time_test.go (about)

     1  package ravendb
     2  
     3  import (
     4  	"encoding/json"
     5  	"strings"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestTime(t *testing.T) {
    13  	{
    14  		var tt time.Time
    15  		d, err := json.Marshal(Time(tt))
    16  		assert.NoError(t, err)
    17  		s := string(d)
    18  		assert.Equal(t, `"0001-01-01T00:00:00.0000000Z"`, s)
    19  	}
    20  
    21  	{
    22  		tt := time.Now()
    23  		d, err := json.Marshal(Time(tt))
    24  		assert.NoError(t, err)
    25  		s := string(d)
    26  		parts := strings.Split(s, ".")
    27  		fracPart := parts[len(parts)-1]
    28  		assert.Equal(t, 9, len(fracPart)) // 9 = 7 digits + Z + "
    29  		assert.True(t, strings.HasSuffix(s, `Z"`))
    30  	}
    31  
    32  	{
    33  		tt, err := time.Parse("2006-01-02T15:04:05.9999999Z", "2018-12-17T18:08:34.069973Z")
    34  		assert.NoError(t, err)
    35  		d, err := json.Marshal(Time(tt))
    36  		assert.NoError(t, err)
    37  		s := string(d)
    38  		parts := strings.Split(s, ".")
    39  		fracPart := parts[len(parts)-1]
    40  		assert.Equal(t, 9, len(fracPart)) // 9 = 7 digits + Z + "
    41  		assert.True(t, strings.HasSuffix(s, `Z"`))
    42  	}
    43  
    44  }