github.com/s7techlab/cckit@v0.10.5/state/mapping/state_mapping_test.go (about)

     1  package mapping_test
     2  
     3  import (
     4  	. "github.com/onsi/ginkgo"
     5  	. "github.com/onsi/gomega"
     6  
     7  	"errors"
     8  
     9  	"github.com/s7techlab/cckit/state"
    10  	m "github.com/s7techlab/cckit/state/mapping"
    11  	"github.com/s7techlab/cckit/state/mapping/testdata"
    12  	"github.com/s7techlab/cckit/state/mapping/testdata/schema"
    13  )
    14  
    15  var _ = Describe(`State mappings`, func() {
    16  
    17  	mappings := m.StateMappings{}.
    18  		//key will be <`EntityWithComplexId`, {Id.IdPart1}, {Id.IdPart2} >
    19  		Add(&schema.EntityWithComplexId{}, m.PKeyComplexId(&schema.EntityComplexId{}))
    20  
    21  	It(`Got error if namespace not exists`, func() {
    22  		_, err := mappings.GetByNamespace(state.Key{`this-namespace-not-exists`})
    23  		Expect(errors.Is(err, m.ErrStateMappingNotFound)).To(BeTrue())
    24  
    25  		_, err = mappings.Get([]string{`this-namespace-not-exists`})
    26  		Expect(errors.Is(err, m.ErrStateMappingNotFound)).To(BeTrue())
    27  	})
    28  
    29  	It(`Allow to get mapping by namespace`, func() {
    30  		mapping, err := mappings.GetByNamespace(state.Key{`EntityWithComplexId`})
    31  		Expect(err).NotTo(HaveOccurred())
    32  
    33  		Expect(mapping.Namespace()).To(Equal(state.Key{`EntityWithComplexId`}))
    34  
    35  		mapping, err = mappings.Get([]string{`EntityWithComplexId`})
    36  		Expect(err).NotTo(HaveOccurred())
    37  		Expect(mapping.Namespace()).To(Equal(state.Key{`EntityWithComplexId`}))
    38  	})
    39  
    40  	It(`Allow to create primary key`, func() {
    41  		mapping, _ := mappings.Get(&schema.EntityWithComplexId{})
    42  		key, err := mapping.PrimaryKey(testdata.CreateEntityWithComplextId[0])
    43  
    44  		Expect(err).NotTo(HaveOccurred())
    45  		Expect(key).To(Equal(state.Key{`EntityWithComplexId`, `aaa`, `bb`, `ccc`, `2020-01-28`}))
    46  	})
    47  })