@ -15,6 +15,43 @@ my $test_machine = Test::Collection->new(
 
			
		
	
		
			
				
					    name  = >  'preferences' , 
 
			
		
	
		
			
				
					) ;  
			
		
	
		
			
				
					my  $ fake_data  =   Test::FakeData - > new ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					my  $ test_machine_soundsets  =  Test::Collection - > new (  
			
		
	
		
			
				
					    name  = >  'soundsets' , 
 
			
		
	
		
			
				
					    QUIET_DELETION  = >  1 , 
 
			
		
	
		
			
				
					) ;  
			
		
	
		
			
				
					my  $ fake_data_soundsets  =  Test::FakeData - > new (  
			
		
	
		
			
				
					    keep_db_data  = >  1 , 
 
			
		
	
		
			
				
					    test_machine  = >  $ test_machine_soundsets , 
 
			
		
	
		
			
				
					) ;  
			
		
	
		
			
				
					$ fake_data_soundsets - > load_collection_data ( 'soundsets' ) ;  
			
		
	
		
			
				
					$ fake_data_soundsets - > apply_data ( {  
			
		
	
		
			
				
					    'soundsets'  = >  { 
 
			
		
	
		
			
				
					        'reseller_id'  = >  1 , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					    'billingprofiles'  = >  { 
 
			
		
	
		
			
				
					        'reseller_id'  = >  1 , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					    'customercontacts'  = >  { 
 
			
		
	
		
			
				
					        'reseller_id'  = >  1 , 
 
			
		
	
		
			
				
					        'email'  = >  'api_preferences_tests@tests.com' , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					    'sysemcontacts'  = >  { 
 
			
		
	
		
			
				
					        'email'  = >  'api_preferences_tests@tests.com' , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					    'customers'  = >  { 
 
			
		
	
		
			
				
					        'external_id'  = >  'api_preferences_tests' , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					    'resellers'  = >  { 
 
			
		
	
		
			
				
					        'name'  = >  'api_preferences_tests' , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					    'contracts'  = >  { 
 
			
		
	
		
			
				
					        'external_id'  = >  'api_preferences_tests' , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					} ) ;  
			
		
	
		
			
				
					$ fake_data_soundsets - > process ( 'soundsets' ) ;  
			
		
	
		
			
				
					$ fake_data - > { data } - > { 'orphansoundsets' }  =  $ fake_data_soundsets - > { data } - > { 'soundsets' } ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					$ fake_data - > set_data_from_script ( {  
			
		
	
		
			
				
					    preferences  = >  { 
 
			
		
	
		
			
				
					        data  = >  { 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -31,17 +68,17 @@ $fake_data->set_data_from_script({
 
			
		
	
		
			
				
					            rewriteruleset_id   = >   sub  {  return  shift - > get_id ( 'rewriterulesets' , @ _ ) ;  } , 
 
			
		
	
		
			
				
					            headerruleset_id   = >   sub  {  return  shift - > get_id ( 'headerrulesets' , @ _ ) ;  } , 
 
			
		
	
		
			
				
					            soundset_id   = >   sub  {  return  shift - > get_id ( 'soundsets' , @ _ ) ;  } , 
 
			
		
	
		
			
				
					            orphan_soundset_id   = >   sub  {  return  $ fake_data_soundsets - > get_id ( 'soundsets' , @ _ ) ;  } , 
 
			
		
	
		
			
				
					            ncoslevel_id   = >   sub  {  return  shift - > get_id ( 'ncoslevels' , @ _ ) ;  } , 
 
			
		
	
		
			
				
					        } , 
 
			
		
	
		
			
				
					    } , 
 
			
		
	
		
			
				
					} ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					#for item creation test purposes /post request data/  
			
		
	
		
			
				
					$ test_machine - > DATA_ITEM_STORE ( $ fake_data - > process ( 'preferences' ) ) ;  
			
		
	
		
			
				
					$ test_machine - > form_data_item (  ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					my  @ apis  =  qw/subscriber domain peeringserver customer profile pbxdevice pbxfielddevice pbxdeviceprofile/ ;  
			
		
	
		
			
				
					#my @apis = qw/p bxdevice /; 
			
		
	
		
			
				
					#my @apis = qw/p eeringserver /; 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					foreach  my  $ api  ( @ apis ) {  
			
		
	
		
			
				
					    my  $ preferences_old ; 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -81,9 +118,9 @@ foreach my $api (@apis){
 
			
		
	
		
			
				
					            # 
 
			
		
	
		
			
				
					            #} 
 
			
		
	
		
			
				
					        } elsif ( 'string'  eq  $ preference - > { data_type } ) { 
 
			
		
	
		
			
				
					            $ value  =  get_preference_existen_value ( $ preference //  "test_api preference string" ; 
 
			
		
	
		
			
				
					            $ value  =  get_preference_existen_value ( $ preference , $ api  ) //  "test_api preference string" ; 
 
			
		
	
		
			
				
					        } elsif ( 'int'  eq  $ preference - > { data_type } ) { 
 
			
		
	
		
			
				
					            $ value  =  get_preference_existen_value ( $ preference //  33 ; 
 
			
		
	
		
			
				
					            $ value  =  get_preference_existen_value ( $ preference , $ api  ) //  33 ; 
 
			
		
	
		
			
				
					        } else { 
 
			
		
	
		
			
				
					            die ( "unknown data type: " . $ preference - > { data_type } . " for $preference_name;\n" ) ; 
 
			
		
	
		
			
				
					        } 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -147,7 +184,7 @@ done_testing;
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					#----------------- aux  
			
		
	
		
			
				
					sub  get_preference_existen_value {  
			
		
	
		
			
				
					    my  $ preference  =  shift ; 
 
			
		
	
		
			
				
					    my  ( $ preference ,  $ api )  =  @ _ ; 
 
			
		
	
		
			
				
					    my  $ res ; 
 
			
		
	
		
			
				
					    if ( $ preference - > { name } =~ /^rewrite_rule_set$/ ) { 
 
			
		
	
		
			
				
					        $ res  =  get_fake_data_created_or_data ( 'rewriterulesets' , 'name' ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -156,7 +193,11 @@ sub get_preference_existen_value{
 
			
		
	
		
			
				
					    } elsif ( $ preference - > { name } =~ /^(adm_)?(cf_)?ncos$/ ) { 
 
			
		
	
		
			
				
					        $ res  =  get_fake_data_created_or_data ( 'ncoslevels' , 'level' ) ; 
 
			
		
	
		
			
				
					    } elsif ( $ preference - > { name } =~ /^(contract_)?sound_set$/ ) { 
 
			
		
	
		
			
				
					        $ res  =  get_fake_data_created_or_data ( 'soundsets' , 'name' ) ; 
 
			
		
	
		
			
				
					        if  ( $ api  eq  'peeringserver' )  { 
 
			
		
	
		
			
				
					            $ res  =  get_fake_data_created_or_data ( 'orphansoundsets' , 'name' ) ; 
 
			
		
	
		
			
				
					        }  else  { 
 
			
		
	
		
			
				
					            $ res  =  get_fake_data_created_or_data ( 'soundsets' , 'name' ) ; 
 
			
		
	
		
			
				
					        } 
 
			
		
	
		
			
				
					    } elsif ( $ preference - > { name } =~ /^emergency_mapping_container$/ ) { 
 
			
		
	
		
			
				
					        $ res  =  get_fake_data_created_or_data ( 'emergencymappingcontainers' , 'name' ) ; 
 
			
		
	
		
			
				
					    } elsif ( $ preference - > { name } =~ /^(man_)?allowed_ips_grp$/ ) {