def volumeSet_callback(hermes, intentMessage): usecase = VolumeSetUseCase(hermes.device_discovery_service, hermes.device_transport_control_service) volume_set_request = VolumeSetRequestAdapter.from_intent_message(intentMessage) response = usecase.execute(volume_set_request) if not response: logging.info(response.value) hermes.publish_end_session(intentMessage.session_id, FR_TTS_SHORT_ERROR) else: logging.info(response) hermes.publish_end_session(intentMessage.session_id, "")
def test_use_case_with_wrong_parameter(): volume_level_is_a_string = "duh" device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestFactory.from_dict({'volume_level': volume_level_is_a_string}) response_object = volume_set_uc.execute(volume_set_request) assert bool(response_object) is False
def test_use_case_with_wrong_parameter(): volume_level_is_a_string = "duh" device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestObject.from_dict({'volume_level': volume_level_is_a_string}) response_object = volume_set_uc.execute(volume_set_request) assert bool(response_object) is False
def test_use_case_with_parameter_out_of_range(connected_device): volume_increase_in_percentage = 123456789 device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestFactory.from_dict({'volume_level': volume_increase_in_percentage}) response_object = volume_set_uc.execute(volume_set_request) assert bool(response_object) is False assert connected_device.volume == 10
def test_use_case_no_reachable_device(): device_discovery_service = mock.Mock() device_discovery_service.get.side_effect = NoReachableDeviceException( "No reachable Sonos devices") # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestFactory.from_dict({'volume_level': 10}) result_obj = volume_set_uc.execute(volume_set_request) assert bool(result_obj) is False assert result_obj.message == "NoReachableDeviceException: No reachable Sonos devices"
def test_use_case_with_maximum_volume(connected_device): volume_level = 100 device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestFactory.from_dict({'volume_level': volume_level}) response_object = volume_set_uc.execute(volume_set_request) assert bool(response_object) is True assert connected_device.volume == 100
def test_use_case_with_parameter_out_of_range(connected_device): volume_increase_in_percentage = 123456789 device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestObject.from_dict({'volume_level': volume_increase_in_percentage}) response_object = volume_set_uc.execute(volume_set_request) assert bool(response_object) is False assert connected_device.volume == 10
def test_use_case_no_reachable_device(): device_discovery_service = mock.Mock() device_discovery_service.get.side_effect = NoReachableDeviceException( "No reachable Sonos devices") # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestObject.from_dict({'volume_level': 10}) result_obj = volume_set_uc.execute(volume_set_request) assert bool(result_obj) is False assert result_obj.message == "NoReachableDeviceException: No reachable Sonos devices"
def test_use_case_with_maximum_volume(connected_device): volume_level = 100 device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestObject.from_dict({'volume_level': volume_level}) response_object = volume_set_uc.execute(volume_set_request) assert bool(response_object) is True assert connected_device.volume == 100
def test_use_case_with_positive_percentage(connected_device): new_volume_level = 50 initial_volume = connected_device.volume device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestFactory.from_dict({'volume_level': new_volume_level}) response_object = volume_set_uc.execute(volume_set_request) assert bool(volume_set_request) is True assert bool(response_object) is True device_transport_control_service.set_volume.assert_called_with(connected_device) assert connected_device.volume == new_volume_level
def test_use_case_empty_parameters(connected_device): device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service initial_volume = connected_device.volume device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestFactory.from_dict({}) result_object = volume_set_uc.execute(volume_set_request) device_discovery_service.get.assert_not_called() device_transport_control_service.volume_set.assert_not_called() assert bool(volume_set_request) is False assert bool(result_object) is False assert connected_device.volume == initial_volume
def test_use_case_with_positive_percentage(connected_device): new_volume_level = 50 initial_volume = connected_device.volume device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestObject.from_dict({'volume_level': new_volume_level}) response_object = volume_set_uc.execute(volume_set_request) assert bool(volume_set_request) is True assert bool(response_object) is True device_transport_control_service.set_volume.assert_called_with(connected_device) assert connected_device.volume == new_volume_level
def test_use_case_empty_parameters(connected_device): device_discovery_service = mock.Mock() device_discovery_service.get.return_value = connected_device # We mock the device discovery service initial_volume = connected_device.volume device_transport_control_service = mock.Mock() volume_set_uc = VolumeSetUseCase(device_discovery_service, device_transport_control_service) volume_set_request = VolumeSetRequestObject.from_dict({}) result_object = volume_set_uc.execute(volume_set_request) device_discovery_service.get.assert_not_called() device_transport_control_service.volume_set.assert_not_called() assert bool(volume_set_request) is False assert bool(result_object) is False assert connected_device.volume == initial_volume