github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/tests/nullable_time.go (about)

     1  package tests
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/ravendb/ravendb-go-client"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  // Note: must rename as it conflicts with Order in order_test.go
    11  type CustomerNilTime struct {
    12  	ID        string        `json:"Id"`
    13  	CreatedAt *ravendb.Time `json:"createdAt"`
    14  }
    15  
    16  func TestNilTimeError(t *testing.T) {
    17  	driver := createTestDriver(t)
    18  	test_case_string_nil_error(t, driver)
    19  }
    20  
    21  func test_case_nil_time_error(t *testing.T, driver *RavenTestDriver) {
    22  
    23  	id := "customer1"
    24  
    25  	var err error
    26  	store := driver.getDocumentStoreMust(t)
    27  	defer store.Close()
    28  
    29  	obj := &CustomerNilTime{
    30  		ID:        id,
    31  		CreatedAt: nil,
    32  	}
    33  
    34  	{
    35  		session := openSessionMust(t, store)
    36  		err = session.Store(obj)
    37  		assert.NoError(t, err)
    38  		session.SaveChanges()
    39  		session.Close()
    40  	}
    41  
    42  	{
    43  		session := openSessionMust(t, store)
    44  		var customer *CustomerNilTime
    45  		err = session.Load(&customer, id)
    46  
    47  		assert.True(t, customer.CreatedAt == nil)
    48  
    49  		session.Close()
    50  	}
    51  }