#!/usr/bin/env python

"""
@package ion.agents.platform.rsn.test.oms_test_mixin
@file    ion/agents/platform/rsn/test/oms_test_mixin.py
@author  Carlos Rueda
@brief   A mixin to facilitate test cases for OMS objects following the
         OMS-CI interface.
"""

__author__ = 'Carlos Rueda'
__license__ = 'Apache 2.0'


from ion.agents.platform.rsn.simulator.logger import Logger
log = Logger.get_logger()

from ion.agents.platform.test.helper import HelperTestMixin

from ion.agents.platform.responses import NormalResponse, InvalidResponse

import time
import ntplib
from gevent.pywsgi import WSGIServer
import socket
import yaml


# some bogus IDs
BOGUS_PLATFORM_ID = 'bogus_plat_id'
BOGUS_ATTR_NAMES = ['bogus_attr1', 'bogus_attr2']
import gevent

# Pyon imports.
from pyon.agent.agent import ResourceAgentClient
from pyon.event.event import EventPublisher
from pyon.public import log
from pyon.public import IonObject
from pyon.public import RT, PRED
from pyon.util.config import Config
from pyon.util.context import LocalContextMixin
from pyon.util.containers import DotDict


# Ion imports.
from ion.agents.platform.rsn.simulator.logger import Logger
Logger.set_logger(log)
from ion.agents.mission_executive import MissionLoader, MissionScheduler

# Interface imports.
from interface.objects import AttachmentType

# Mock imports.
# from mock import Mock, patch


class FakeProcess(LocalContextMixin):
    """
    A fake process used because the test case is not an ion process.
    """
    name = ''
    id = ''
#!/usr/bin/env python

"""
@package ion.agents.platform.rsn.test.oms_test_mixin
@file    ion/agents/platform/rsn/test/oms_test_mixin.py
@author  Carlos Rueda
@brief   A mixin to facilitate test cases for OMS objects following the
         OMS-CI interface.
"""

__author__ = 'Carlos Rueda'



from ion.agents.platform.rsn.simulator.logger import Logger
log = Logger.get_logger()

from ion.agents.platform.test.helper import HelperTestMixin

from ion.agents.platform.responses import NormalResponse

import time
import ntplib
from gevent.pywsgi import WSGIServer
import socket
import yaml


# some bogus IDs
BOGUS_PLATFORM_ID = 'bogus_plat_id'
BOGUS_ATTR_NAMES = ['bogus_attr1', 'bogus_attr2']
#!/usr/bin/env python
"""
@package ion.agents.platform.rsn.simulator.test.test_oms_simulator
@file    ion/agents/platform/rsn/simulator/test/test_oms_simulator.py
@author  Carlos Rueda
@brief   Test cases for the simulator, by default in embedded form,
         but the OMS environment variable can be used to indicate other.
"""

__author__ = 'Carlos Rueda'

from pyon.public import log
from ion.agents.platform.rsn.simulator.logger import Logger
Logger.set_logger(log)

from pyon.util.unit_test import IonUnitTestCase

from ion.agents.platform.rsn.oms_client_factory import CIOMSClientFactory
from ion.agents.platform.rsn.test.oms_test_mixin import OmsTestMixin

from nose.plugins.attrib import attr
import unittest
import os

#
# Skip if OMS environment variable is defined: this unit test is specifically
# for the simulator run in embedded form. Other tests, eg., test_oms_client,
# are more flexible (and "integration" in nature), allowing to test against
# not only the simulator (launched in whatever form) but also the real RSN OMS
# endpoint.
#