def test_auto_unbind(self): """ FakeSMSC will automatically respond to an unbind request by default. The unbind PDU remains in the queue. """ fake_smsc = FakeSMSC() client = self.successResultOf(self.connect(fake_smsc)) self.assertEqual(client.received, b"") self.assertEqual(fake_smsc.waiting_pdu_count(), 0) yield client.write(Unbind(7).get_bin()) self.assertEqual(client.received, UnbindResp(7).get_bin()) self.assertEqual(fake_smsc.waiting_pdu_count(), 1)
def test_waiting_pdu_count(self): """ FakeSMSC knows how many received PDUs are waiting. """ fake_smsc = FakeSMSC() client = self.successResultOf(self.connect(fake_smsc)) # Nothing received yet. self.assertEqual(fake_smsc.waiting_pdu_count(), 0) # Some PDUs received. yield client.write(EnquireLink(1).get_bin()) self.assertEqual(fake_smsc.waiting_pdu_count(), 1) yield client.write(EnquireLink(2).get_bin()) self.assertEqual(fake_smsc.waiting_pdu_count(), 2) # Some PDUs returned. self.successResultOf(fake_smsc.await_pdu()) self.assertEqual(fake_smsc.waiting_pdu_count(), 1) self.successResultOf(fake_smsc.await_pdu()) self.assertEqual(fake_smsc.waiting_pdu_count(), 0) # Wait for a PDU that arrives later. pdu_d = fake_smsc.await_pdu() self.assertNoResult(pdu_d) self.assertEqual(fake_smsc.waiting_pdu_count(), 0) yield client.write(EnquireLink(3).get_bin()) self.assertEqual(fake_smsc.waiting_pdu_count(), 0) self.successResultOf(pdu_d)