2015-09-12 12:47:36 +00:00
|
|
|
# Copyright (c) 2015 Nicolas JOUANIN
|
|
|
|
#
|
|
|
|
# See the file license.txt for copying permission.
|
|
|
|
import unittest
|
|
|
|
import asyncio
|
|
|
|
from hbmqtt.plugins.manager import PluginManager
|
|
|
|
from hbmqtt.session import Session
|
|
|
|
from hbmqtt.mqtt.protocol.handler import ProtocolHandler
|
2015-09-12 13:28:40 +00:00
|
|
|
from hbmqtt.adapters import BufferReader, BufferWriter
|
2015-09-12 12:47:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ProtocolHandlerTest(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
|
|
self.loop = asyncio.new_event_loop()
|
|
|
|
self.plugin_manager = PluginManager("hbmqtt.test.plugins", context=None, loop=self.loop)
|
|
|
|
|
|
|
|
def test_init_handler(self):
|
|
|
|
s = Session()
|
|
|
|
handler = ProtocolHandler(s, self.plugin_manager, loop=self.loop)
|
|
|
|
self.assertIs(handler.session, s)
|
|
|
|
self.assertIs(handler._loop, self.loop)
|
|
|
|
self.assertFalse(handler._puback_waiters)
|
|
|
|
self.assertFalse(handler._pubrec_waiters)
|
|
|
|
self.assertFalse(handler._pubrel_waiters)
|
|
|
|
self.assertFalse(handler._pubcomp_waiters)
|
2015-09-12 13:28:40 +00:00
|
|
|
|
|
|
|
def test_start_stop(self):
|
|
|
|
@asyncio.coroutine
|
|
|
|
def server_coro(reader, writer):
|
|
|
|
pass
|
|
|
|
|
|
|
|
@asyncio.coroutine
|
|
|
|
def test_coro():
|
|
|
|
s = Session()
|
|
|
|
buffer = b''
|
|
|
|
s.reader = BufferReader(buffer)
|
|
|
|
s.writer = BufferWriter(buffer)
|
|
|
|
handler = ProtocolHandler(s, self.plugin_manager, loop=self.loop)
|
|
|
|
yield from handler.start()
|
|
|
|
yield from handler.stop()
|
|
|
|
return handler
|
|
|
|
handler = self.loop.run_until_complete(test_coro())
|