...

Source file src/github.com/jackc/pgtype/tstzrange_test.go

Documentation: github.com/jackc/pgtype

     1  package pgtype_test
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/jackc/pgtype"
     8  	"github.com/jackc/pgtype/testutil"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestTstzrangeTranscode(t *testing.T) {
    13  	testutil.TestSuccessfulTranscodeEqFunc(t, "tstzrange", []interface{}{
    14  		&pgtype.Tstzrange{LowerType: pgtype.Empty, UpperType: pgtype.Empty, Status: pgtype.Present},
    15  		&pgtype.Tstzrange{
    16  			Lower:     pgtype.Timestamptz{Time: time.Date(1990, 12, 31, 0, 0, 0, 0, time.UTC), Status: pgtype.Present},
    17  			Upper:     pgtype.Timestamptz{Time: time.Date(2028, 1, 1, 0, 23, 12, 0, time.UTC), Status: pgtype.Present},
    18  			LowerType: pgtype.Inclusive,
    19  			UpperType: pgtype.Exclusive,
    20  			Status:    pgtype.Present,
    21  		},
    22  		&pgtype.Tstzrange{
    23  			Lower:     pgtype.Timestamptz{Time: time.Date(1800, 12, 31, 0, 0, 0, 0, time.UTC), Status: pgtype.Present},
    24  			Upper:     pgtype.Timestamptz{Time: time.Date(2200, 1, 1, 0, 23, 12, 0, time.UTC), Status: pgtype.Present},
    25  			LowerType: pgtype.Inclusive,
    26  			UpperType: pgtype.Exclusive,
    27  			Status:    pgtype.Present,
    28  		},
    29  		&pgtype.Tstzrange{Status: pgtype.Null},
    30  	}, func(aa, bb interface{}) bool {
    31  		a := aa.(pgtype.Tstzrange)
    32  		b := bb.(pgtype.Tstzrange)
    33  
    34  		return a.Status == b.Status &&
    35  			a.Lower.Time.Equal(b.Lower.Time) &&
    36  			a.Lower.Status == b.Lower.Status &&
    37  			a.Lower.InfinityModifier == b.Lower.InfinityModifier &&
    38  			a.Upper.Time.Equal(b.Upper.Time) &&
    39  			a.Upper.Status == b.Upper.Status &&
    40  			a.Upper.InfinityModifier == b.Upper.InfinityModifier
    41  	})
    42  }
    43  
    44  // https://github.com/jackc/pgtype/issues/74
    45  func TestTstzRangeDecodeTextInvalid(t *testing.T) {
    46  	tstzrange := &pgtype.Tstzrange{}
    47  	err := tstzrange.DecodeText(nil, []byte(`[eeee,)`))
    48  	require.Error(t, err)
    49  }
    50  

View as plain text