'L{CommandDispatcher.callRemote} should emit a properly formatted \'_ask\'
box to its boxSender and record an outstanding L{Deferred}.  When a
corresponding \'_answer\' packet is received, the L{Deferred} should be
fired, and the results translated via the given L{Command}\'s response
de-serialization.'

def test_callRemote(self):

    D = self.dispatcher.callRemote(Hello, hello='world')
    self.assertEqual(self.sender.sentBoxes, [amp.AmpBox(_command='hello', _ask='1', hello='world')])
    answers = []
    D.addCallback(answers.append)
    self.assertEqual(answers, [])
    self.dispatcher.ampBoxReceived(amp.AmpBox({'hello': 'yay', 'print': 'ignored', '_answer': '1'}))
    self.assertEqual(answers, [dict(hello='yay', Print=u'ignored')])
