def test_post_processing_in_dp_mode(self) -> None: """ Test FreedomFi One specific post processing functionality in Domain Proxy mode""" service_cfg = _get_service_config() expected = [ call.delete_parameter(ParameterName.EARFCNDL), call.delete_parameter(ParameterName.DL_BANDWIDTH), call.delete_parameter(ParameterName.UL_BANDWIDTH), call.set_parameter( param_name=FreedomFiOneMiscParameters.TUNNEL_REF, value='Device.IP.Interface.1.IPv4Address.1.', ), call.set_parameter( param_name=FreedomFiOneMiscParameters.CARRIER_AGG_ENABLE, value=True), call.set_parameter( param_name=FreedomFiOneMiscParameters.CARRIER_NUMBER, value=2), call.set_parameter( param_name=FreedomFiOneMiscParameters.CONTIGUOUS_CC, value=0), call.set_parameter( param_name=FreedomFiOneMiscParameters.WEB_UI_ENABLE, value=False), call.set_parameter(param_name=SASParameters.SAS_ENABLE, value=True), call.set_parameter(param_name=SASParameters.SAS_METHOD, value=False), call.set_parameter_for_object( param_name='PLMN 1 cell reserved', value=True, object_name='PLMN 1', ), call.set_parameter(SASParameters.SAS_METHOD, value=True), call.set_parameter(FreedomFiOneMiscParameters.PRIM_SOURCE, 'GNSS'), ] self._check_postprocessing(expected=expected, service_cfg=service_cfg)
def test_post_process_without_sas_cfg_with_ui(self) -> None: """ Test FreedomFi One specific post processing functionality without sas config with ui enabled""" service_cfg = { "tr069": { "interface": "eth1", "port": 48080, "perf_mgmt_port": 8081, "public_ip": "192.88.99.142", }, "prim_src": 'GNSS', "reboot_enodeb_on_mme_disconnected": True, "s1_interface": "eth1", "web_ui_enable_list": ["2006CW5000023"], } expected = [ call.delete_parameter(ParameterName.EARFCNDL), call.delete_parameter(ParameterName.DL_BANDWIDTH), call.delete_parameter(ParameterName.UL_BANDWIDTH), call.set_parameter( param_name=FreedomFiOneMiscParameters.TUNNEL_REF, value='Device.IP.Interface.1.IPv4Address.1.', ), call.set_parameter( param_name=FreedomFiOneMiscParameters.CARRIER_AGG_ENABLE, value=True), call.set_parameter( param_name=FreedomFiOneMiscParameters.CARRIER_NUMBER, value=2), call.set_parameter( param_name=FreedomFiOneMiscParameters.CONTIGUOUS_CC, value=0), call.set_parameter( param_name=FreedomFiOneMiscParameters.WEB_UI_ENABLE, value=False), call.set_parameter(param_name=SASParameters.SAS_ENABLE, value=True), call.set_parameter(param_name=SASParameters.SAS_METHOD, value=False), call.set_parameter_for_object( param_name='PLMN 1 cell reserved', value=True, object_name='PLMN 1', ), call.set_parameter(FreedomFiOneMiscParameters.WEB_UI_ENABLE, value=True), call.set_parameter(SASParameters.SAS_METHOD, value=True), call.set_parameter(FreedomFiOneMiscParameters.PRIM_SOURCE, 'GNSS'), ] self._check_postprocessing(expected=expected, service_cfg=service_cfg)
def test_post_processing_in_non_dp_mode(self) -> None: """ Test FreedomFi One specific post processing functionality in standalone mode""" service_cfg = _get_service_config(dp_mode=False) expected = [ call.delete_parameter(ParameterName.EARFCNDL), call.delete_parameter(ParameterName.DL_BANDWIDTH), call.delete_parameter(ParameterName.UL_BANDWIDTH), call.set_parameter( param_name=FreedomFiOneMiscParameters.TUNNEL_REF, value='Device.IP.Interface.1.IPv4Address.1.', ), call.set_parameter( param_name=FreedomFiOneMiscParameters.CARRIER_AGG_ENABLE, value=True), call.set_parameter( param_name=FreedomFiOneMiscParameters.CARRIER_NUMBER, value=2), call.set_parameter( param_name=FreedomFiOneMiscParameters.CONTIGUOUS_CC, value=0), call.set_parameter( param_name=FreedomFiOneMiscParameters.WEB_UI_ENABLE, value=False), call.set_parameter(param_name=SASParameters.SAS_ENABLE, value=True), call.set_parameter(param_name=SASParameters.SAS_METHOD, value=False), call.set_parameter_for_object( param_name='PLMN 1 cell reserved', value=True, object_name='PLMN 1', ), call.set_parameter( SASParameters.SAS_SERVER_URL, TEST_SAS_URL, ), call.set_parameter(SASParameters.SAS_UID, 'M0LK4T'), call.set_parameter(SASParameters.SAS_CATEGORY, 'A'), call.set_parameter(SASParameters.SAS_CHANNEL_TYPE, 'GAA'), call.set_parameter( SASParameters.SAS_CERT_SUBJECT, TEST_SAS_CERT_SUBJECT, ), call.set_parameter(SASParameters.SAS_LOCATION, 'indoor'), call.set_parameter(SASParameters.SAS_HEIGHT_TYPE, 'AMSL'), call.set_parameter(FreedomFiOneMiscParameters.PRIM_SOURCE, 'GNSS'), ] self._check_postprocessing(expected=expected, service_cfg=service_cfg)
def test_post_processing(self) -> None: """ Test FreedomFi One specific post processing functionality""" acs_state_machine = self.build_freedomfi_one_acs_state_machine() cfg_desired = Mock() acs_state_machine.device_cfg.set_parameter( ParameterName.SERIAL_NUMBER, "2006CW5000023", ) cfg_init = FreedomFiOneConfigurationInitializer(acs_state_machine) cfg_init.postprocess( EnodebConfigBuilder.get_mconfig(), self._get_service_config(), cfg_desired, ) expected = [ call.delete_parameter('EARFCNDL'), call.delete_parameter('DL bandwidth'), call.delete_parameter('UL bandwidth'), call.set_parameter( 'tunnel_ref', 'Device.IP.Interface.1.IPv4Address.1.', ), call.set_parameter('prim_src', 'GNSS'), call.set_parameter('carrier_agg_enable', True), call.set_parameter('carrier_number', 2), call.set_parameter('contiguous_cc', 0), call.set_parameter('web_ui_enable', False), call.set_parameter('sas_enabled', True), call.set_parameter( 'sas_server_url', 'https://spectrum-connect.federatedwireless.com/v1.2/', ), call.set_parameter('sas_uid', 'M0LK4T'), call.set_parameter('sas_category', 'A'), call.set_parameter('sas_channel_type', 'GAA'), call.set_parameter( 'sas_cert_subject', '/C=TW/O=Sercomm/OU=WInnForum CBSD Certificate/CN=P27-SCE4255W:%s', ), call.set_parameter('sas_location', 'indoor'), call.set_parameter('sas_height_type', 'AMSL'), call.set_parameter_for_object( param_name='PLMN 1 cell reserved', value=True, object_name='PLMN 1', ), ] cfg_desired.mock_calls.sort() expected.sort() self.assertEqual(cfg_desired.mock_calls, expected) # Check without sas config service_cfg = { "tr069": { "interface": "eth1", "port": 48080, "perf_mgmt_port": 8081, "public_ip": "192.88.99.142", }, "reboot_enodeb_on_mme_disconnected": True, "s1_interface": "eth1", } cfg_desired = Mock() cfg_init.postprocess( EnodebConfigBuilder.get_mconfig(), service_cfg, cfg_desired, ) expected = [ call.delete_parameter('EARFCNDL'), call.delete_parameter('DL bandwidth'), call.delete_parameter('UL bandwidth'), call.set_parameter( 'tunnel_ref', 'Device.IP.Interface.1.IPv4Address.1.', ), call.set_parameter('prim_src', 'GNSS'), call.set_parameter('carrier_agg_enable', True), call.set_parameter('carrier_number', 2), call.set_parameter('contiguous_cc', 0), call.set_parameter('web_ui_enable', False), call.set_parameter_for_object( param_name='PLMN 1 cell reserved', value=True, object_name='PLMN 1', ), ] cfg_desired.mock_calls.sort() expected.sort() self.assertEqual(cfg_desired.mock_calls, expected) service_cfg['web_ui_enable_list'] = ["2006CW5000023"] expected = [ call.delete_parameter('EARFCNDL'), call.delete_parameter('DL bandwidth'), call.delete_parameter('UL bandwidth'), call.set_parameter( 'tunnel_ref', 'Device.IP.Interface.1.IPv4Address.1.', ), call.set_parameter('prim_src', 'GNSS'), call.set_parameter('carrier_agg_enable', True), call.set_parameter('carrier_number', 2), call.set_parameter('contiguous_cc', 0), call.set_parameter('web_ui_enable', False), call.set_parameter('web_ui_enable', True), call.set_parameter_for_object( param_name='PLMN 1 cell reserved', value=True, object_name='PLMN 1', ), ] cfg_desired = Mock() cfg_init.postprocess( EnodebConfigBuilder.get_mconfig(), service_cfg, cfg_desired, ) cfg_desired.mock_calls.sort() expected.sort() self.assertEqual(cfg_desired.mock_calls, expected)