private static void processOptions(IConnectionInfo connectionInfo)
        {
            string brokerlist = connectionInfo.GetOption(ConnectionUrlConstants.OPTIONS_BROKERLIST);

            if (brokerlist != null)
            {
                //brokerlist tcp://host:port?option='value',option='value';vm://:3/virtualpath?option='value'
                Regex splitter = new Regex("" + URLHelper.BROKER_SEPARATOR);

                foreach (string broker in splitter.Split(brokerlist))
                {
                    connectionInfo.AddBrokerInfo(new AmqBrokerInfo(broker));
                }

                connectionInfo.SetOption(ConnectionUrlConstants.OPTIONS_BROKERLIST, null);
                //                _options.remove(OPTIONS_BROKERLIST);
            }

            string failover = connectionInfo.GetOption(ConnectionUrlConstants.OPTIONS_FAILOVER);

            if (failover != null)
            {
                // failover='method?option='value',option='value''

                int methodIndex = failover.IndexOf('?');

                if (methodIndex > -1)
                {
                    connectionInfo.FailoverMethod = failover.Substring(0, methodIndex);
                    QpidConnectionInfo qpidConnectionInfo = (QpidConnectionInfo)connectionInfo;
                    URLHelper.parseOptions(qpidConnectionInfo.GetFailoverOptions(),
                                           failover.Substring(methodIndex + 1));
                }
                else
                {
                    connectionInfo.FailoverMethod = failover;
                }

                connectionInfo.SetOption(ConnectionUrlConstants.OPTIONS_FAILOVER, null);
                //                _options.remove(OPTIONS_FAILOVER);
            }
        }
        public void SingleTransportMultiOptionURL()
        {
            String url = "amqp://*****:*****@default/temp?brokerlist='tcp://localhost:5672',routingkey='jim',timeout='200',immediatedelivery='true'";

            IConnectionInfo connectionurl = QpidConnectionInfo.FromUrl(url);

            Assert.IsTrue(connectionurl.FailoverMethod == null);
            Assert.IsTrue(connectionurl.Username.Equals("guest"));
            Assert.IsTrue(connectionurl.Password.Equals("guest"));
            Assert.IsTrue(connectionurl.VirtualHost.Equals("/temp"));

            Assert.IsTrue(connectionurl.BrokerCount == 1);

            IBrokerInfo service = connectionurl.GetBrokerInfo(0);

            Assert.IsTrue(service.Transport.Equals("tcp"));

            Assert.IsTrue(service.Host.Equals("localhost"));
            Assert.IsTrue(service.Port == 5672);

            Assert.IsTrue(connectionurl.GetOption("routingkey").Equals("jim"));
            Assert.IsTrue(connectionurl.GetOption("timeout").Equals("200"));
            Assert.IsTrue(connectionurl.GetOption("immediatedelivery").Equals("true"));
        }