def test_onGotItem_noParams(self):
        cdm = CorrelatedDefaultsManager(testjid)
        cdm.broadcastStart = Mock()
        cdm.broadcastStop = Mock()
        cdm.broadcastLogs = Mock()
        
        item = Element((pubsub.NS_PUBSUB_EVENT, 'item'))
        item['id'] = str(1)
        item.addElement('stuff', content='stuff that isnt parameters')

        out = yield cdm.onGotItem(item)

        self.assertFalse(cdm.broadcastStart.called)
        self.assertFalse(cdm.broadcastStop.called)
        self.assertFalse(cdm.broadcastLogs.called)
    def test_onGotItem_startNoRunId(self):
        cdm = CorrelatedDefaultsManager(testjid)
        cdm.broadcastStart = Mock()
        cdm.broadcastStop = Mock()
        cdm.broadcastLogs = Mock(side_effect=utils.good_side_effect('lush'))
        
        item = Element((pubsub.NS_PUBSUB_EVENT, 'item'))
        params = simulation.Parameters(cmd='start')
        p = item.addChild(params.toElement())
        p.addChild(portfolio.Portfolio('p1').toElement())
        expected = simulation.Parameters(cmd='start', run_id=None, timestamp=params.timestamp).toElement()

        out = yield cdm.onGotItem(item)

        self.assertFalse(cdm.broadcastStart.called)
        self.assertEquals(cdm.broadcastLogs.call_count, 1)
        self.assertFalse(cdm.broadcastStop.called)

        for ((a,b), dic) in cdm.broadcastLogs.call_args_list:
            self.assertEquals(b.toElement().toXml(), expected.toXml())
    def test_onGotItem_stopping(self):
        cdm = CorrelatedDefaultsManager(testjid)
        cdm.broadcastStart = Mock()
        cdm.broadcastStop = Mock(side_effect=utils.good_side_effect('lush'))
        cdm.broadcastLogs = Mock()
        
        item = Element((pubsub.NS_PUBSUB_EVENT, 'item'))
        item['id'] = str(1)
        params = simulation.Parameters(cmd='stop')
        expected = params.toElement()
        item.addChild(expected)

        out = yield cdm.onGotItem(item)

        self.assertFalse(cdm.broadcastStart.called)
        self.assertEquals(cdm.broadcastStop.call_count, 1)
        self.assertFalse(cdm.broadcastLogs.called)

        for ((a,), dic) in cdm.broadcastStop.call_args_list:
            self.assertEquals(a.toElement().toXml(), expected.toXml())