'Generates fake notifications of different notification types.'

@classmethod
def GenerateNotifications(cls, client_id, token):

    session_id = flow.GRRFlow.StartFlow(client_id=client_id, flow_name=discovery.Interrogate.__name__, token=token)
    with aff4.FACTORY.Open(session_id, mode='rw', token=token) as flow_obj:
        flow_obj.Notify('Discovery', client_id, 'Fake    discovery    message')
        flow_obj.Notify('ViewObject', ('%s/fs/os/proc/10/exe' % client_id), 'File    fetch    completed')
        with aff4.FACTORY.Create(client_id.Add('fs/os/proc/10/exe'), aff4_grr.VFSFile, mode='w', token=token):
            pass
        flow_obj.Notify('ViewObject', flow_obj.urn, 'Fake    view    flow    message')
        flow_obj.GetRunner().Error('Fake    flow    error')
    return session_id
