def test_settleCommitIncoming(self): 'test settleCommitIncoming' msg_in = messages.SettleCommit(token='foobar', isPayerSide=True) expectedRouteID = '1' + settings.hashAlgorithm('foobar') self.link.channels.append(DummyChannel()) self.link.channels.append(DummyChannel()) self.assertRaises(Exception, self.link.settleCommitIncoming, msg_in) self.assertEqual(self.link.channels[0].state, [expectedRouteID]) self.assertEqual(self.link.channels[1].state, [expectedRouteID]) self.link.channels[0].state = [] self.link.channels[1].state = [] self.link.channels[1].hasRouteReturn = True ret = self.link.settleCommitIncoming(msg_in) self.assertEqual(len(ret), 1) msg = ret[0] self.assertTrue(isinstance(msg, messages.OutboundMessage)) self.assertEqual(msg.localID, 'local') msg = msg.message self.assertTrue(isinstance(msg, messages.ChannelMessage)) self.assertEqual(msg.channelIndex, 1) self.assertEqual(msg.message, 'settleCommitIncoming') self.assertEqual(self.link.channels[0].state, [expectedRouteID]) self.assertEqual(self.link.channels[1].state, [ expectedRouteID, ('settleCommitIncoming', (expectedRouteID, ), {}) ])
def test_settleCommitOutgoing(self): "Test settleCommitOutgoing" ret = self.payeeLink.settleCommitOutgoing( messages.SettleCommit(token=self.payeeLink.token)) self.assertEqual(self.payeeLink.state, payeelink.PayeeLink.states.committed) self.assertEqual(len(ret), 0)
def test_settleCommitOutgoing(self): 'Test settleCommitOutgoing' ret = self.meetingPoint.settleCommitOutgoing( messages.SettleCommit(ID='foo', token='bar', isPayerSide=True)) self.assertEqual(len(ret), 1) msg = ret[0] self.assertTrue(isinstance(msg, messages.SettleCommit)) self.assertEqual(msg.ID, 'MPID') self.assertEqual(msg.token, 'bar') self.assertEqual(msg.isPayerSide, False)
def test_settleCommitIncoming(self): "Test settleCommitIncoming" ret = self.payerLink.settleCommitIncoming( messages.SettleCommit(token="bar")) self.assertEqual(self.payerLink.state, payerlink.PayerLink.states.committed) self.assertEqual(len(ret), 2) msg = ret[0] self.assertTrue(isinstance(msg, messages.FilterTimeouts)) function = msg.function self.assertFalse(function(messages.PayerTimeout())) self.assertTrue(function(messages.NodeStateTimeout_Route())) msg = ret[1] self.assertTrue(isinstance(msg, messages.SetEvent)) self.assertEqual(msg.event, messages.SetEvent.events.paymentFinished)
def test_settleRollbackIncoming(self): 'test settleRollbackIncoming' msg_in = messages.SettleRollback(transactionID='foobar', isPayerSide=True) self.link.channels.append(DummyChannel()) self.link.channels.append(DummyChannel()) self.assertRaises(Exception, self.link.settleRollbackIncoming, msg_in) self.assertEqual(self.link.channels[0].state, ['1foobar']) self.assertEqual(self.link.channels[1].state, ['1foobar']) self.link.channels[0].state = [] self.link.channels[1].state = [] self.link.channels[1].hasRouteReturn = True ret = self.link.settleRollbackIncoming(msg_in) self.assertEqual(len(ret), 2) msg = ret[0] self.assertTrue(isinstance(msg, messages.OutboundMessage)) self.assertEqual(msg.localID, 'local') msg = msg.message self.assertTrue(isinstance(msg, messages.ChannelMessage)) self.assertEqual(msg.channelIndex, 1) self.assertEqual(msg.message, 'settleRollbackIncoming') msg = ret[1] self.assertTrue(isinstance(msg, messages.FilterTimeouts)) self.assertFalse( msg.function( messages.LinkTimeout_Commit(transactionID='foobar', isPayerSide=True, ID='local'))) self.assertTrue( msg.function( messages.LinkTimeout_Commit(transactionID='other', isPayerSide=True, ID='local'))) self.assertTrue( msg.function( messages.LinkTimeout_Commit(transactionID='foobar', isPayerSide=False, ID='local'))) self.assertTrue( msg.function( messages.LinkTimeout_Commit(transactionID='foobar', isPayerSide=True, ID='other'))) self.assertTrue( msg.function( messages.SettleCommit(transactionID='foobar', isPayerSide=True, ID='local'))) self.assertEqual(self.link.channels[0].state, ['1foobar']) self.assertEqual( self.link.channels[1].state, ['1foobar', ('settleRollbackIncoming', ('1foobar', ), {})])
def test_settleCommitOutgoing(self): 'test settleCommitOutgoing' msg_in = messages.SettleCommit(token='foobar', isPayerSide=True) expectedRouteID = '1' + settings.hashAlgorithm('foobar') self.link.channels.append(DummyChannel()) self.link.channels.append(DummyChannel()) ret = self.link.settleCommitOutgoing(msg_in) self.assertEqual(len(ret), 0) self.assertEqual(self.link.channels[0].state, [expectedRouteID]) self.assertEqual(self.link.channels[1].state, [expectedRouteID]) self.link.channels[0].state = [] self.link.channels[1].state = [] self.link.channels[1].hasRouteReturn = True ret = self.link.settleCommitOutgoing(msg_in) self.assertEqual(len(ret), 3) msg = ret[0] self.assertTrue(isinstance(msg, messages.OutboundMessage)) self.assertEqual(msg.localID, 'local') msg = msg.message self.assertTrue(isinstance(msg, messages.ChannelMessage)) self.assertEqual(msg.channelIndex, 1) self.assertEqual(msg.message, 'settleCommitOutgoing') msg = ret[1] self.assertTrue(isinstance(msg, messages.OutboundMessage)) self.assertEqual(msg.localID, 'local') msg = msg.message self.assertFalse(msg is msg_in) self.assertTrue(isinstance(msg, messages.SettleCommit)) self.assertEqual(msg.token, msg_in.token) self.assertEqual(msg.isPayerSide, msg_in.isPayerSide) msg = ret[2] self.assertTrue(isinstance(msg, messages.FilterTimeouts)) self.assertFalse( msg.function( messages.LinkTimeout_Commit( transactionID=settings.hashAlgorithm('foobar'), isPayerSide=True, ID='local'))) self.assertTrue( msg.function( messages.LinkTimeout_Commit(transactionID='other', isPayerSide=True, ID='local'))) self.assertTrue( msg.function( messages.LinkTimeout_Commit( transactionID=settings.hashAlgorithm('foobar'), isPayerSide=False, ID='local'))) self.assertTrue( msg.function( messages.LinkTimeout_Commit( transactionID=settings.hashAlgorithm('foobar'), isPayerSide=True, ID='other'))) self.assertTrue( msg.function( messages.SettleCommit( transactionID=settings.hashAlgorithm('foobar'), isPayerSide=True, ID='local'))) self.assertEqual(self.link.channels[0].state, [expectedRouteID]) self.assertEqual(self.link.channels[1].state, [ expectedRouteID, ('settleCommitOutgoing', (expectedRouteID, 'foobar'), {}) ])