TT#7453 Adapt tests to the date fields in the subscriber

Change-Id: I5a278972c2e179cb1ac747d63217b43d3d25ca59
changes/10/12210/6
Irina Peshinskaya 8 years ago
parent d43d51d036
commit 35bac73d19

@ -107,7 +107,7 @@ SKIP:{
}
#write cf and check written values
my($cf1_put,$cf1_get) = $test_machine->check_put2get({data_in => $test_machine->DATA_ITEM, uri => $cf1single_uri},undef, 1 );
my($cf1_put,$cf1_get) = $test_machine->check_put2get({data_in => $test_machine->DATA_ITEM, uri => $cf1single_uri},undef, { skip_compare => 1 } );
is (ref $cf1_put->{content}, "HASH", "should be hashref");
is ($cf1_put->{content}->{cfu}{destinations}->[0]->{timeout}, 200, "Check timeout of cft");
is ($cf1_put->{content}->{cft}{destinations}->[0]->{simple_destination}, "5678", "Check first destination of cft");
@ -139,7 +139,7 @@ SKIP:{
is($content->{code}, "400", "check error code in body");
like($content->{message}, qr/Invalid id/, "check error message in body");
my($cf2_put,$cf2_get) = $test_machine->check_put2get({data_in => clone($cf1_put->{content}), uri => $cf1single_uri},undef, 1 );
my($cf2_put,$cf2_get) = $test_machine->check_put2get({data_in => clone($cf1_put->{content}), uri => $cf1single_uri},undef, { skip_compare => 1 } );
is_deeply($cf1_put->{content}, $cf2_put->{content}, "check put if unmodified put returns the same");
$test_machine->check_embedded($cf2_put->{content});

@ -63,7 +63,8 @@ SKIP:{
($res,$mod_customer) = $test_machine->check_patch_correct( [ { op => 'replace', path => '/subscriber_email_template_id', value => $test_machine->DATA_ITEM->{subscriber_email_template_id} } ] );
is($mod_customer->{subscriber_email_template_id}, $test_machine->DATA_ITEM->{subscriber_email_template_id}, "check patched subscriber_email_template_id:".$mod_customer->{subscriber_email_template_id});
ok(length($mod_customer->{subscriber_email_template_id}) > 8 , "check "");
ok(length($mod_customer->{create_timestamp}) > 8 , "check create_timestamp not empty ".$mod_customer->{create_timestamp});
ok(length($mod_customer->{modify_timestamp}) > 8 , "check modify_timestamp not empty ".$mod_customer->{modify_timestamp});
$test_machine->check_bundle();
}

@ -93,7 +93,7 @@ foreach my $api (@apis){
}
#(undef, $preferences_put->{content}) = $test_machine->request_put($preferences->{content},$preferences->{uri});
#we don't check read_only flag when update preferences?
(undef, $preferences_put->{content}) = $test_machine->check_put2get({data_in=>$preferences->{content},uri=>$preferences->{uri}},undef, 1);
(undef, $preferences_put->{content}) = $test_machine->check_put2get({data_in=>$preferences->{content},uri=>$preferences->{uri}},undef, { skip_compare => 1 });
(undef, $preferences_put->{content}) = $test_machine->request_put($preferences_old,$preferences->{uri});
}

@ -74,6 +74,8 @@ $test_machine->DATA_ITEM_STORE($fake_data_processed);
$test_machine->form_data_item();
my $remote_config = $test_machine->init_catalyst_config;
#modify time changes on every data change, and primary_number_id on every primary number change
my $put2get_check_params = {ignore_fields => [qw/modify_timestamp create_timestamp primary_number_id/]};
{
#20369
@ -103,7 +105,7 @@ my $remote_config = $test_machine->init_catalyst_config;
$_[0]->{username} .= time().'_'.$_[1]->{i} ;
} );
$test_machine->check_bundle();
$test_machine->check_get2put(undef,{});
$test_machine->check_get2put(undef,{},$put2get_check_params);
$test_machine->clear_test_data_all();#fake data aren't registered in this test machine, so they will stay.
#remove pilot aliases to don't intersect with them. On subscriber termination admin adopt numbers, see ticket#4967
$pilot and $test_machine->request_patch( [ { op => 'replace', path => '/alias_numbers', value => [] } ], $pilot->{location} );
@ -143,12 +145,12 @@ my $remote_config = $test_machine->init_catalyst_config;
#1
$subscriber->{content}->{primary_number} = $intentional_primary_number;
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put);
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put, $put2get_check_params);
is($preferences_get->{content}->{cli}, $intentional_cli, "1. check that cli was preserved on subscriber phones update: $preferences_get->{content}->{cli} == $intentional_cli");
#/1
#2
delete $subscriber->{content}->{primary_number};
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put);
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put, $put2get_check_params);
is($preferences_get->{content}->{cli}, $intentional_cli, "2. check that cli was preserved on subscriber phones update: $preferences_get->{content}->{cli} == $intentional_cli");
#/2
#now prepare preferences for zero situation, when synchronization will be restarted again
@ -158,7 +160,7 @@ my $remote_config = $test_machine->init_catalyst_config;
if($remote_config->{config}->{numbermanagement}->{auto_sync_cli}){
#3
$subscriber->{content}->{primary_number} = $intentional_primary_number;
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put);
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put, $put2get_check_params);
is($preferences_get->{content}->{cli}, number_as_string($intentional_primary_number), "check that cli was created on subscriber phones update: $preferences_get->{content}->{cli} == ".number_as_string($intentional_primary_number) );
#/3
$intentional_primary_number = {
@ -168,12 +170,12 @@ my $remote_config = $test_machine->init_catalyst_config;
};
#4
$subscriber->{content}->{primary_number} = $intentional_primary_number;
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put);
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put, $put2get_check_params );
is($preferences_get->{content}->{cli}, number_as_string($intentional_primary_number), "check that cli was updated on subscriber phones update: $preferences_get->{content}->{cli} == ".number_as_string($intentional_primary_number) );
#/4
#5
delete $subscriber->{content}->{primary_number};
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put);
($subscriber_put,$subscriber_get,$preferences_get) = $test_machine->put_and_get($subscriber, $preferences_put, $put2get_check_params);
is($preferences_get->{content}->{cli}, undef, "check that cli was deleted on subscriber phones update");
#/5
}
@ -207,13 +209,13 @@ if($remote_config->{config}->{features}->{cloudpbx}){
});
$members->[1]->{content}->{pbx_group_ids} = [];
diag("1. Check that member will return empty groups after put groups empty");
my($member_put,$member_get) = $test_machine->check_put2get($members->[1]);
my($member_put,$member_get) = $test_machine->check_put2get($members->[1],undef, $put2get_check_params);
is_deeply( $members->[1]->{content}->{pbx_group_ids}, [], "Check that member will return empty groups after put groups empty");
$members->[1]->{content}->{pbx_group_ids} = [map { $groups->[$_]->{content}->{id} } (2,1)];
diag("2. Check that member will return groups as they were specified");
#fix for the 5415 prevents changing members order in the group, this is why resulting groups order for the member may differ from the input
#($member_put,$member_get) = $test_machine->check_put2get($members->[1]);
#($member_put,$member_get) = $test_machine->check_put2get($members->[1], undef, $put2get_check_params);
my($res,$content) = $test_machine->request_put(@{$members->[1]}{qw/content location/});
$test_machine->http_code_msg(200, "PUT for members[1] was successful", $res, $content);
@ -223,18 +225,18 @@ if($remote_config->{config}->{features}->{cloudpbx}){
$groups->[1]->{content}->{pbx_groupmember_ids} = [map { $members->[$_]->{content}->{id} } (2,1,0)];
diag("3. Check that group will return members as they were specified");
my($group_put,$group_get) = $test_machine->check_put2get($groups->[1]);
my($group_put,$group_get) = $test_machine->check_put2get($groups->[1], undef, $put2get_check_params);
$groups->[1]->{content}->{pbx_groupmember_ids} = [];
diag("4. Check that group will return empty members after put members empty");
my($group_put,$group_get) = $test_machine->check_put2get($groups->[1]);
my($group_put,$group_get) = $test_machine->check_put2get($groups->[1], undef, $put2get_check_params);
#5415 WF
diag("5415: check that groups management doesn't change members order;\n");
diag("5415:Set members order for the group;\n");
$groups->[1]->{content}->{pbx_groupmember_ids} = [ map { $members->[$_]->{content}->{id} } ( 0, 2, 1 ) ];
($group_put,$group_get)= $test_machine->check_put2get($groups->[1]);
($group_put,$group_get)= $test_machine->check_put2get($groups->[1], undef, $put2get_check_params);
diag("5415:Touch one of the members;\n");
$members->[2]->{content}->{pbx_group_ids} = [ map { $groups->[$_]->{content}->{id} } (2,1)];
@ -249,7 +251,10 @@ if($remote_config->{config}->{features}->{cloudpbx}){
my(undef, $group_get_after) = $test_machine->check_item_get($groups->[1]->{location});
is_deeply($groups->[1]->{content}->{pbx_groupmember_ids}, $group_get_after->{pbx_groupmember_ids}, "Check group members order after touching it's member");
#7453 - we have modifications, so we can check modify_timestamp
ok(length($members_2_after_touch->{create_timestamp}) > 8 , "check create_timestamp not empty ".$members_2_after_touch->{create_timestamp});
ok(length($members_2_after_touch->{modify_timestamp}) > 8 , "check modify_timestamp not empty ".$members_2_after_touch->{modify_timestamp});
$test_machine->clear_test_data_all();#fake data aren't registered in this test machine, so they will stay.
}

@ -1139,17 +1139,24 @@ sub clear_test_data_dependent{
}
sub check_get2put{
my($self, $put_in, $get_in) = @_;
my($self, $put_in, $get_in, $params) = @_;
my($put_out,$get_out);
$params //= {};
$get_in //= {};
$put_in //= {};
$get_in->{ignore_fields} //= [];
$put_in->{ignore_fields} //= [];
$get_in->{uri} //= $put_in->{uri};
$put_in->{uri} //= $get_in->{uri};
$get_in->{ignore_fields} //= [];
$put_in->{ignore_fields} //= [];
$params->{ignore_fields} //= [];
my $ignore_fields = [@{$params->{ignore_fields}}, @{$get_in->{ignore_fields}}, @{$put_in->{ignore_fields}}];
delete $get_in->{ignore_fields};
delete $put_in->{ignore_fields};
@$get_out{qw/response content request/} = $self->check_item_get($get_in->{uri});
$put_out->{content_in} = clone($get_out->{content});
delete $put_out->{content_in}->{_links};
@ -1157,7 +1164,7 @@ sub check_get2put{
# check if put is ok
(defined $put_in->{data_cb}) and $put_in->{data_cb}->($put_out->{content_in});
@{$put_out}{qw/response content request/} = $self->request_put( $put_out->{content_in}, $put_in->{uri} );
foreach my $field (@{$get_in->{ignore_fields}}, @{$put_in->{ignore_fields}}){
foreach my $field (@{$ignore_fields}){
delete $get_out->{content}->{$field};
delete $put_out->{content}->{$field};
}
@ -1167,17 +1174,27 @@ sub check_get2put{
}
sub check_put2get{
my($self, $put_in, $get_in, $check_cb_or_switch) = @_;
my($self, $put_in, $get_in, $params) = @_;
my($put_out,$get_out);
$params //= {};
$get_in //= {};
$put_in->{uri} //= $put_in->{location};
$get_in->{uri} //= $put_in->{uri};
$put_in->{uri} //= $get_in->{uri};
$get_out->{uri} = $get_in->{uri};
$get_in->{ignore_fields} //= [];
$put_in->{ignore_fields} //= [];
$params->{ignore_fields} //= [];
my $ignore_fields = [@{$params->{ignore_fields}}, @{$get_in->{ignore_fields}}, @{$put_in->{ignore_fields}}];
delete $get_in->{ignore_fields};
delete $put_in->{ignore_fields};
$put_in->{data_in} //= $put_in->{content};
$put_out->{content_in} = $self->process_data($put_in->{data_cb}, $put_in->{data_in});
@{$put_out}{qw/response content request/} = $self->request_put( $put_out->{content_in}, $put_in->{uri} );
$self->http_code_msg(200, "check_put2get: check put successful",$put_out->{response}, $put_out->{content});
@ -1188,10 +1205,14 @@ sub check_put2get{
delete $put_out->{content_in}->{_embedded};
my $item_id = delete $get_out->{content}->{id};
my $item_id_in = delete $put_out->{content_in}->{id};
if('CODE' eq ref $check_cb_or_switch){
$check_cb_or_switch->($put_out,$get_out);
foreach my $field (@{$ignore_fields}){
delete $get_out->{content}->{$field};
delete $put_out->{content_in}->{$field};
}
if(!$check_cb_or_switch || 'CODE' eq ref $check_cb_or_switch){
if('CODE' eq ref $params->{compare_cb}){
$params->{compare_cb}->($put_out,$get_out);
}
if(!$params->{skip_compare}){
is_deeply($get_out->{content}, $put_out->{content_in}, "$self->{name}: check_put2get: check PUTed item against GETed item");
}
$get_out->{content}->{id} = $item_id;
@ -1200,13 +1221,23 @@ sub check_put2get{
}
sub check_post2get{
my($self, $post_in, $get_in) = @_;
my($self, $post_in, $get_in, $params) = @_;
$get_in //= {};
#$post = {data_in=>,data_cb=>};
#$get = {uri=>}
#return
#$post={response,content,request,data,location}
#$get=={response,content,request,uri}
$get_in->{ignore_fields} //= [];
$post_in->{ignore_fields} //= [];
$params->{ignore_fields} //= [];
my $ignore_fields = [@{$params->{ignore_fields}}, @{$get_in->{ignore_fields}}, @{$post_in->{ignore_fields}}];
delete $get_in->{ignore_fields};
delete $post_in->{ignore_fields};
my($post_out,$get_out);
@{$post_out}{qw/response content request data/} = $self->check_item_post( $post_in->{data_cb}, $post_in->{data_in} );
$self->http_code_msg(201, "check_post2get: POST item '".$self->name."' for check_post2get", @{$post_out}{qw/response content/});
@ -1217,20 +1248,48 @@ sub check_post2get{
delete $get_out->{content}->{_links};
my $item_id = delete $get_out->{content}->{id};
is_deeply($post_out->{data}, $get_out->{content}, "$self->{name}: check_post2get: check POSTed '".$self->name."' against fetched");
foreach my $field (@$ignore_fields){
delete $get_out->{content}->{$field};
delete $post_out->{data}->{$field};
}
if('CODE' eq ref $params->{compare_cb}){
$params->{compare_cb}->($post_out->{data}, $get_out->{content});
}
if(!$params->{skip_compare}){
is_deeply($post_out->{data}, $get_out->{content}, "$self->{name}: check_post2get: check POSTed '".$self->name."' against fetched");
}
$get_out->{content}->{id} = $item_id;
return ($post_out, $get_out);
}
sub put_and_get{
my($self, $put_in, $get_in) = @_;
my($self, $put_in, $get_in,$params) = @_;
my($put_out,$put_get_out,$get_out);
$params //= ();
$get_in->{ignore_fields} //= [];
$put_in->{ignore_fields} //= [];
$params->{ignore_fields} //= [];
my $ignore_fields = [@{$params->{ignore_fields}}, @{$get_in->{ignore_fields}}, @{$put_in->{ignore_fields}}];
delete $get_in->{ignore_fields};
delete $put_in->{ignore_fields};
@{$put_out}{qw/response content request/} = $self->request_put($put_in->{content},$put_in->{uri});
@{$put_get_out}{qw/response content request/} = $self->check_item_get($put_in->{uri});
@{$get_out}{qw/response content request/} = $self->check_item_get($get_in->{uri});
delete $put_get_out->{content_in}->{_links};
delete $put_get_out->{content_in}->{_embedded};
is_deeply($put_in->{content}, $put_get_out->{content}, "$self->{name}: check that '$put_in->{uri}' was updated on put;");
foreach my $field (@$ignore_fields){
delete $put_get_out->{content}->{$field};
delete $put_in->{content}->{$field};
}
if('CODE' eq ref $params->{compare_cb}){
$params->{compare_cb}->($put_in->{content}, $put_get_out->{content});
}
if(!$params->{skip_compare}){
is_deeply($put_in->{content}, $put_get_out->{content}, "$self->{name}: check put_and_get: check that '$put_in->{uri}' was updated on put;");
}
return ($put_out,$put_get_out,$get_out);
}

Loading…
Cancel
Save