# coding: utf-8

"""
    Mozart platform API

    API for interacting with the Mozart platform.  # noqa: E501

    The version of the OpenAPI document: 0.2.0
    Contact: support@bang-olufsen.dk
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import mozart_api
from mozart_api.models.action import Action  # noqa: E501
from mozart_api.rest import ApiException


class TestAction(unittest.TestCase):
    """Action unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test Action
        include_option is a boolean, when False only required
        params are included, when True both required and
        optional params are included"""
        # model = mozart_api.models.action.Action()  # noqa: E501
        if include_optional:
            return Action(
                button_name="preset1",
                content_id="0",
                deezer_user_id="0",
                listening_mode_id=0,
                preset_key="0",
                queue_item=mozart_api.models.play_queue_item.PlayQueueItem(
                    index=56,
                    metadata=mozart_api.models.playback_content_metadata.PlaybackContentMetadata(
                        album_name="0",
                        art=[
                            mozart_api.models.art.Art(
                                has_local_image=True,
                                key="0",
                                size="0",
                                type="0",
                                url="0",
                            )
                        ],
                        artist_name="0",
                        bitdepth=56,
                        bitrate=56,
                        container_name="0",
                        encoding="pcm",
                        genre="0",
                        id=56,
                        input_channel_processing="dolbySurround",
                        input_channels="0",
                        organization="0",
                        output_channel_processing="Direct",
                        output_channels="0",
                        queue_id="0",
                        remote_leader=mozart_api.models.beolink_leader.BeolinkLeader(
                            friendly_name="0",
                            jid="2714.1200304.26451293@products.bang-olufsen.com",
                        ),
                        remote_source="0",
                        samplerate=56,
                        source="0",
                        source_internal_id="0",
                        title="0",
                        total_duration=56,
                        total_duration_seconds=56,
                        track=56,
                        track_count=56,
                        uri="0",
                    ),
                    provider=mozart_api.models.play_queue_item_type.PlayQueueItemType(
                        value="uri",
                    ),
                    start_now_from_position=56,
                    type="track",
                    uri="0",
                ),
                queue_settings=mozart_api.models.play_queue_settings.PlayQueueSettings(
                    consume=True,
                    gapless=True,
                    repeat="all",
                    shuffle=True,
                ),
                radio_station_id="0",
                source=mozart_api.models.source_type_enum.SourceTypeEnum(
                    value="beolink",
                ),
                speaker_group_id="0",
                stand_position=mozart_api.models.stand_position.StandPosition(
                    angle=1.337,
                ),
                stop_duration=0,
                tone_name="alarm_1",
                type="standby",
                volume_level=0,
            )
        else:
            return Action(
                type="standby",
            )

    def testAction(self):
        """Test Action"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


if __name__ == "__main__":
    unittest.main()
