"""The tests for the simulated sensor."""
import unittest

from tests.common import get_test_home_assistant

from homeassistant.components.simulated.sensor import (
    CONF_AMP,
    CONF_FWHM,
    CONF_MEAN,
    CONF_PERIOD,
    CONF_PHASE,
    CONF_SEED,
    CONF_UNIT,
    CONF_RELATIVE_TO_EPOCH,
    DEFAULT_AMP,
    DEFAULT_FWHM,
    DEFAULT_MEAN,
    DEFAULT_NAME,
    DEFAULT_PHASE,
    DEFAULT_SEED,
    DEFAULT_RELATIVE_TO_EPOCH,
)
from homeassistant.const import CONF_FRIENDLY_NAME
from homeassistant.setup import setup_component


class TestSimulatedSensor(unittest.TestCase):
    """Test the simulated sensor."""

    def setup_method(self, method):
        """Set up things to be run when tests are started."""
        self.hass = get_test_home_assistant()

    def teardown_method(self, method):
        """Stop everything that was started."""
        self.hass.stop()

    def test_default_config(self):
        """Test default config."""
        config = {"sensor": {"platform": "simulated"}}
        assert setup_component(self.hass, "sensor", config)
        self.hass.block_till_done()

        assert len(self.hass.states.entity_ids()) == 1
        state = self.hass.states.get("sensor.simulated")

        assert state.attributes.get(CONF_FRIENDLY_NAME) == DEFAULT_NAME
        assert state.attributes.get(CONF_AMP) == DEFAULT_AMP
        assert state.attributes.get(CONF_UNIT) is None
        assert state.attributes.get(CONF_MEAN) == DEFAULT_MEAN
        assert state.attributes.get(CONF_PERIOD) == 60.0
        assert state.attributes.get(CONF_PHASE) == DEFAULT_PHASE
        assert state.attributes.get(CONF_FWHM) == DEFAULT_FWHM
        assert state.attributes.get(CONF_SEED) == DEFAULT_SEED
        assert state.attributes.get(CONF_RELATIVE_TO_EPOCH) == DEFAULT_RELATIVE_TO_EPOCH
