[ https://issues.apache.org/jira/browse/DISPATCH-209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15799592#comment-15799592 ]
ASF GitHub Bot commented on DISPATCH-209: ----------------------------------------- Github user ted-ross commented on a diff in the pull request: https://github.com/apache/qpid-dispatch/pull/134#discussion_r94681419 --- Diff: tests/system_tests_three_routers.py --- @@ -220,6 +225,70 @@ def run(self): Container(self).run() +class DynamicRequestResponseTest(MessagingHandler): + def __init__(self, address1, address2): + super(DynamicRequestResponseTest, self).__init__(prefetch=0) + self.address1 = address1 + self.address2 = address2 + self.dest = "closest.dynamicRequestResponse" + self.error = None + self.sender = None + self.server_receiver = None + self.client_receiver = None + self.n_expected = 10 + self.n_sent = 0 + self.n_received = 0 + self.n_accepted = 0 + + def timeout(self): + self.error = "Timeout Expired %d messages received." % self.n_received + self.client_connection.close() + self.server_connection.close() + + def on_released(self, event): + self.n_sent -= 1 + time.sleep(0.1) + + def on_start(self, event): + self.timer = event.reactor.schedule(5, Timeout(self)) + self.client_connection = event.container.connect(self.address1) + self.server_connection = event.container.connect(self.address2) + self.server_receiver = event.container.create_receiver(self.server_connection, self.dest) + self.client_receiver = event.container.create_receiver(self.client_connection, None, dynamic=True) + self.server_receiver.flow(self.n_expected) + self.client_receiver.flow(self.n_expected) + self.sender = event.container.create_sender(self.client_connection, None) + + def on_sendable(self, event): + if self.n_sent < self.n_expected: + # We send to server, and ask it to reply to client. + request = Message(body=self.n_sent, address=self.dest, reply_to=self.client_receiver.remote_source.address) + event.sender.send(request) + self.n_sent += 1 + + def on_accepted(self, event): + self.n_accepted += 1 + + def on_message(self, event): + + # Receiver gets a message and replies to client. + if event.receiver == self.server_receiver : + self.sender.send ( Message(address=event.message.reply_to, body="Reply hazy, try again later.") ) --- End diff -- The server is sending its responses on the client's sender! > Three+ router test is needed in the system test suite. > ------------------------------------------------------ > > Key: DISPATCH-209 > URL: https://issues.apache.org/jira/browse/DISPATCH-209 > Project: Qpid Dispatch > Issue Type: New Feature > Components: Tests > Reporter: Ted Ross > Assignee: michael goulish > > There have arisen some issues that would have been caught had there been a > three-router test in the regression suite. This test should be added. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org