public void MethodFrame()
        {
            const int Channel = 3;

            var method      = new BasicPublish(0, "E", "R", true, true);
            int payloadSize = method.GetRequiredBufferSize();
            var frameBytes  = new byte[Impl.Framing.Method.FrameSize + payloadSize];

            Impl.Framing.Method.WriteTo(frameBytes, Channel, method);

            Assert.AreEqual(12, Impl.Framing.Method.FrameSize);
            Assert.AreEqual(Constants.FrameMethod, frameBytes[0]);
            Assert.AreEqual(0, frameBytes[1]);                             // channel
            Assert.AreEqual(Channel, frameBytes[2]);                       // channel
            Assert.AreEqual(0, frameBytes[3]);                             // payload size
            Assert.AreEqual(0, frameBytes[4]);                             // payload size
            Assert.AreEqual(0, frameBytes[5]);                             // payload size
            Assert.AreEqual(4 + payloadSize, frameBytes[6]);               // payload size
            Assert.AreEqual(0, frameBytes[7]);                             // ProtocolClassId
            Assert.AreEqual(ClassConstants.Basic, frameBytes[8]);          // ProtocolClassId
            Assert.AreEqual(0, frameBytes[9]);                             // ProtocolMethodId
            Assert.AreEqual(BasicMethodConstants.Publish, frameBytes[10]); // ProtocolMethodId
            Assert.AreEqual(0, frameBytes[11]);                            // reserved1
            Assert.AreEqual(0, frameBytes[12]);                            // reserved1
            Assert.AreEqual(1, frameBytes[13]);                            // Exchange length
            Assert.AreEqual((byte)'E', frameBytes[14]);                    // Exchange payload
            Assert.AreEqual(1, frameBytes[15]);                            // RoutingKey length
            Assert.AreEqual((byte)'R', frameBytes[16]);                    // RoutingKey payload
            Assert.AreEqual(0b0000_0011, frameBytes[17]);                  // Mandatory & Immediate flags
            Assert.AreEqual(Constants.FrameEnd, frameBytes[18]);
        }
Beispiel #2
0
        public void Add(string exchange, string routingKey, bool mandatory, IBasicProperties basicProperties, ReadOnlyMemory <byte> body)
        {
            var method = new BasicPublish
            {
                _exchange   = exchange,
                _routingKey = routingKey,
                _mandatory  = mandatory
            };

            _commands.Add(new OutgoingCommand(method, (ContentHeaderBase)(basicProperties ?? _model._emptyBasicProperties), body));
        }
        public void Add(string exchange, string routingKey, bool mandatory, IBasicProperties basicProperties, byte[] body)
        {
            var bp     = basicProperties ?? _model.CreateBasicProperties();
            var method = new BasicPublish
            {
                _exchange   = exchange,
                _routingKey = routingKey,
                _mandatory  = mandatory
            };

            _commands.Add(new Command(method, (ContentHeaderBase)bp, body));
        }
 public SampleHostedService(ILogger <SampleHostedService> logger, BasicPublish publish, EasyNetQClientTest easyNetQClientTest)
 {
     _logger             = logger;
     _publish            = publish;
     _easyNetQClientTest = easyNetQClientTest;
 }