github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/protocol/v1/request_test.go (about)

     1  // Copyright (c) 2017-2022, R.I. Pienaar and the Choria Project contributors
     2  //
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package v1
     6  
     7  import (
     8  	"time"
     9  
    10  	"github.com/choria-io/go-choria/protocol"
    11  	. "github.com/onsi/ginkgo/v2"
    12  	. "github.com/onsi/gomega"
    13  )
    14  
    15  var _ = Describe("Request", func() {
    16  	It("Should construct the correct request", func() {
    17  		request, _ := NewRequest("test", "go.tests", "choria=test", 120, "a2f0ca717c694f2086cfa81b6c494648", "mcollective")
    18  		filter, filtered := request.Filter()
    19  
    20  		request.SetMessage([]byte("hello world"))
    21  
    22  		j, _ := request.JSON()
    23  
    24  		Expect(protocol.VersionFromJSON(j)).To(Equal(protocol.RequestV1))
    25  		Expect(request.Message()).To(Equal([]byte("hello world")))
    26  		Expect(request.RequestID()).To(HaveLen(32))
    27  		Expect(request.SenderID()).To(Equal("go.tests"))
    28  		Expect(request.CallerID()).To(Equal("choria=test"))
    29  		Expect(request.Collective()).To(Equal("mcollective"))
    30  		Expect(request.Agent()).To(Equal("test"))
    31  		Expect(request.TTL()).To(Equal(120))
    32  		Expect(request.Time()).To(BeTemporally("~", time.Now(), time.Second))
    33  		Expect(filtered).To(BeFalse())
    34  		Expect(filter.Empty()).To(BeTrue())
    35  
    36  		filter.AddAgentFilter("rpcutil")
    37  		filter, filtered = request.Filter()
    38  		Expect(filtered).To(BeTrue())
    39  		Expect(filter).ToNot(BeNil())
    40  
    41  		filter.AddAgentFilter("other")
    42  		filter, filtered = request.Filter()
    43  		Expect(filtered).To(BeTrue())
    44  		Expect(filter).ToNot(BeNil())
    45  	})
    46  })