Apache.NMS.Test.MapMessageTest.SendReceiveMapMessage C# (CSharp) Method

SendReceiveMapMessage() private method

private SendReceiveMapMessage ( [ deliveryMode ) : void
deliveryMode [
return void
        public void SendReceiveMapMessage(
            [Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
            MsgDeliveryMode deliveryMode)
        {
            using(IConnection connection = CreateConnection(GetTestClientId()))
            {
                connection.Start();
                using(ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
                {
                    IDestination destination = SessionUtil.GetDestination(session, DESTINATION_NAME);
                    using(IMessageConsumer consumer = session.CreateConsumer(destination))
                    using(IMessageProducer producer = session.CreateProducer(destination))
                    {
                        producer.DeliveryMode = deliveryMode;
                        IMapMessage request = session.CreateMapMessage();
                        request.Body["a"] = a;
                        request.Body["b"] = b;
                        request.Body["c"] = c;
                        request.Body["d"] = d;
                        request.Body["e"] = e;
                        request.Body["f"] = f;
                        request.Body["g"] = g;
                        request.Body["h"] = h;
                        request.Body["i"] = i;
                        request.Body["j"] = j;
                        request.Body["k"] = k;
                        request.Body["l"] = l;
                        request.Body["m"] = m;
                        request.Body["n"] = n;
                        request.Body["o"] = o;
                        producer.Send(request);

                        IMapMessage message = consumer.Receive(receiveTimeout) as IMapMessage;
                        Assert.IsNotNull(message, "No message returned!");
                        Assert.AreEqual(request.Body.Count, message.Body.Count, "Invalid number of message maps.");
                        Assert.AreEqual(deliveryMode, message.NMSDeliveryMode, "NMSDeliveryMode does not match");
                        Assert.AreEqual(ToHex(f), ToHex(message.Body.GetLong("f")), "map entry: f as hex");

                        // use generic API to access entries
                        Assert.AreEqual(a, message.Body["a"], "generic map entry: a");
                        Assert.AreEqual(b, message.Body["b"], "generic map entry: b");
                        Assert.AreEqual(c, message.Body["c"], "generic map entry: c");
                        Assert.AreEqual(d, message.Body["d"], "generic map entry: d");
                        Assert.AreEqual(e, message.Body["e"], "generic map entry: e");
                        Assert.AreEqual(f, message.Body["f"], "generic map entry: f");
                        Assert.AreEqual(g, message.Body["g"], "generic map entry: g");
                        Assert.AreEqual(h, message.Body["h"], "generic map entry: h");
                        Assert.AreEqual(i, message.Body["i"], "generic map entry: i");
                        Assert.AreEqual(j, message.Body["j"], "generic map entry: j");
                        Assert.AreEqual(k, message.Body["k"], "generic map entry: k");
                        Assert.AreEqual(l, message.Body["l"], "generic map entry: l");
                        Assert.AreEqual(m, message.Body["m"], "generic map entry: m");
                        Assert.AreEqual(n, message.Body["n"], "generic map entry: n");
                        Assert.AreEqual(o, message.Body["o"], "generic map entry: o");

                        // use type safe APIs
                        Assert.AreEqual(a, message.Body.GetBool("a"), "map entry: a");
                        Assert.AreEqual(b, message.Body.GetByte("b"), "map entry: b");
                        Assert.AreEqual(c, message.Body.GetChar("c"), "map entry: c");
                        Assert.AreEqual(d, message.Body.GetShort("d"), "map entry: d");
                        Assert.AreEqual(e, message.Body.GetInt("e"), "map entry: e");
                        Assert.AreEqual(f, message.Body.GetLong("f"), "map entry: f");
                        Assert.AreEqual(g, message.Body.GetString("g"), "map entry: g");
                        Assert.AreEqual(h, message.Body.GetBool("h"), "map entry: h");
                        Assert.AreEqual(i, message.Body.GetByte("i"), "map entry: i");
                        Assert.AreEqual(j, message.Body.GetShort("j"), "map entry: j");
                        Assert.AreEqual(k, message.Body.GetInt("k"), "map entry: k");
                        Assert.AreEqual(l, message.Body.GetLong("l"), "map entry: l");
                        Assert.AreEqual(m, message.Body.GetFloat("m"), "map entry: m");
                        Assert.AreEqual(n, message.Body.GetDouble("n"), "map entry: n");
                        Assert.AreEqual(o, message.Body.GetBytes("o"), "map entry: o");
                    }
                }
            }
        }