'When ``run_state_changes`` is called with the result of
``in_parallel``, the returned ``Deferred`` fires when all of the
changes passed to ``sequentially`` have completed.'

def test_result(self):

    not_done1 = Deferred()
    not_done2 = Deferred()
    subchanges = [ControllableAction(result=not_done1), ControllableAction(result=not_done2)]
    change = in_parallel(changes=subchanges)
    result = run_state_change(change, DEPLOYER, InMemoryStatePersister())
    self.assertNoResult(result)
    not_done1.callback(None)
    self.assertNoResult(result)
    not_done2.callback(None)
    self.successResultOf(result)
