Вход Регистрация
Файл: campaign/tests/csrest_campaigns_test.php
Строк: 400
<?php

require_once __DIR__.'/../vendor/autoload.php';
require_once 
__DIR__.'/../vendor/lastcraft/simpletest/autorun.php';

@
Mock::generate('CS_REST_Log');
@
Mock::generate('CS_REST_NativeJsonSerialiser');
@
Mock::generate('CS_REST_CurlTransport');

class 
CS_REST_ApiKeyTestCampaigns extends CS_REST_TestCampaigns {
    var 
$auth = array('api_key' => 'not a real api key');
}

class 
CS_REST_OAuthTestCampaigns extends CS_REST_TestCampaigns {
    var 
$auth = array(
        
'access_token' => '7y872y3872i3eh',
        
'refresh_token' => 'kjw8qjd9ow8jo');
}

abstract class 
CS_REST_TestCampaigns extends CS_REST_TestBase {
    var 
$campaign_id 'not a real campaign id';
    var 
$campaign_base_route;

    function 
set_up_inner() {
        
$this->campaign_base_route $this->base_route.'campaigns/'.$this->campaign_id.'/';
        
$this->wrapper = new CS_REST_Campaigns($this->campaign_id$this->auth$this->protocol$this->log_level,
        
$this->api_host$this->mock_log$this->mock_serialiser$this->mock_transport);
    }

    function 
testcreate() {
        
$raw_result 'the new campaign id';
        
$client_id 'not a real client id';
        
$response_code 200;

        
$call_options $this->get_call_options(
            
$this->base_route.'campaigns/'.$client_id.'.json''POST');

        
$campaign_data = array (
            
'Name' => 'ABC Widgets',
            
'Subject' => 'Widget Man!',
            
'ListIDs' => array(1,2,3),
            
'SegmentIDs' => array(4,5,6)
        );

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($raw_result$response_code);
        
$call_options['data'] = 'campaign data was serialised to this';
        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$raw_result$raw_result'campaign data was serialised to this'
            
$campaign_data$response_code);

        
$result $this->wrapper->create($client_id$campaign_data);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testcreate_from_template() {
        
$raw_result 'the new campaign id';
        
$client_id 'not a real client id';
        
$response_code 200;

        
$call_options $this->get_call_options(
            
$this->base_route.'campaigns/'.$client_id.'/fromtemplate.json''POST');

        
$template_content = array(
          
'Singlelines' => array(
            array(
              
'Content' => 'This is a heading',
              
'Href' => 'http://example.com/'
            
)
          ),
          
'Multilines' => array(
            array(
              
'Content' => '<p>This is example</p><p>multiline <a href="http://example.com">content</a>...</p>'
            
)
          ),
          
'Images' => array(
            array(
              
'Content' => 'http://example.com/image.png',
              
'Alt' => 'This is alt text for an image',
              
'Href' => 'http://example.com/'
            
)
          ),
          
'Repeaters' => array(
            array(
              
'Items' => array(
                array(
                  
'Layout' => 'My layout',
                  
'Singlelines' => array(
                    array(
                      
'Content' => 'This is a repeater heading',
                      
'Href' => 'http://example.com/'
                    
)
                  ),
                  
'Multilines' => array(
                    array(
                      
'Content' => '<p>This is example</p><p>multiline <a href="http://example.com">content</a>...</p>'
                    
)
                  ),
                  
'Images' => array(
                    array(
                      
'Content' => 'http://example.com/image.png',
                      
'Alt' => 'This is alt text for a repeater image',
                      
'Href' => 'http://example.com/'
                    
)
                  )
                )
              )
            )
          )
        );

        
$campaign_data = array (
            
'Name' => 'ABC Widgets',
            
'Subject' => 'Widget Man!',
            
'ListIDs' => array(1,2,3),
            
'SegmentIDs' => array(4,5,6),
            
'TemplateID' => 'dj9qw8jdq98wjdqd2112e',
            
'TemplateContent' => $template_content
        
);

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($raw_result$response_code);
        
$call_options['data'] = 'campaign data was serialised to this';
        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$raw_result$raw_result'campaign data was serialised to this'
            
$campaign_data$response_code);

        
$result $this->wrapper->create_from_template($client_id$campaign_data);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testsend_preview() {
        
$raw_result '';
        
$response_code 200;

        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'sendpreview.json''POST');

        
$recipients = array (
            
'test1@test.com',
            
'test1@test.com'
        
);
        
$personalise 'Random';
        
        
$preview_info = array(
            
'PreviewRecipients' => $recipients,
            
'Personalize' => $personalise
        
);

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($raw_result$response_code);
        
$call_options['data'] = 'campaign data was serialised to this';
        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$raw_result$raw_result'campaign data was serialised to this'
            
$preview_info);

        
$result $this->wrapper->send_preview($recipients$personalise);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testsend() {
        
$raw_result '';

        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'send.json''POST');

        
$schedule = array (
            
'CompanyName' => 'ABC Widgets',
            
'ContactName' => 'Widget Man!',
            
'EmailAddress' => 'widgets@abc.net.au'
        
);

        
$this->general_test_with_argument('send'$schedule$call_options,
            
$raw_result$raw_result'scheduling was serialised to this');
    }

    function 
testdelete() {
        
$raw_result '';

        
$call_options $this->get_call_options(
            
trim($this->campaign_base_route'/').'.json''DELETE');

        
$this->general_test('delete'$call_options$raw_result$raw_result);
    }

    function 
testget_recipients() {
        
$raw_result 'some recipients';
        
$deserialised = array('Recipient 1''Recipient 2');
        
$call_options $this->get_call_options($this->campaign_base_route.'recipients.json');

        
$this->general_test('get_recipients'$call_options$raw_result$deserialised);
    }

    function 
testget_bounces() {
        
$raw_result 'some bounces';
        
$since '2020';
        
$response_code 200;
        
$deserialised = array('Bounce 1''Bounce 2');
        
$call_options $this->get_call_options(
          
$this->campaign_base_route.'bounces.json?date='.$since);

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($deserialised$response_code);

        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$deserialised$raw_resultNULLNULL$response_code);

        
$result $this->wrapper->get_bounces($since);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testget_lists_and_segments() {
        
$raw_result 'some lists';
        
$deserialised = array('List 1''List 2');
        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'listsandsegments.json');

        
$this->general_test('get_lists_and_segments'$call_options$raw_result$deserialised);
    }

    function 
testget_summary() {
        
$raw_result 'campaign summary';
        
$deserialised = array(1,2,3,4,5);
        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'summary.json');

        
$this->general_test('get_summary'$call_options$raw_result$deserialised);
    }

    function 
testget_email_client_usage() {
        
$raw_result 'campaign email client usage';
        
$deserialised = array(1,2,3,4,5);
        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'emailclientusage.json');

        
$this->general_test('get_email_client_usage'$call_options$raw_result$deserialised);
    }

    function 
testget_opens() {
        
$raw_result 'some opens';
        
$since '2020';
        
$response_code 200;
        
$deserialised = array('Open 1''Open 2');
        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'opens.json?date='.$since);

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($deserialised$response_code);

        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$deserialised$raw_resultNULLNULL$response_code);

        
$result $this->wrapper->get_opens($since);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testget_clicks() {
        
$raw_result 'some clicks';
        
$since '2020';
        
$response_code 200;
        
$deserialised = array('Click 1''Click 2');
        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'clicks.json?date='.$since);

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($deserialised$response_code);

        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$deserialised$raw_resultNULLNULL$response_code);

        
$result $this->wrapper->get_clicks($since);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testget_unsubscribes() {
        
$raw_result 'some unsubscribed';
        
$since '2020';
        
$response_code 200;
        
$deserialised = array('Unsubscribe 1''Unsubscribe 2');
        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'unsubscribes.json?date='.$since);

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($deserialised$response_code);

        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$deserialised$raw_resultNULLNULL$response_code);

        
$result $this->wrapper->get_unsubscribes($since);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testget_spam() {
        
$raw_result 'some spam';
        
$since '2020';
        
$response_code 200;
        
$deserialised = array('Spam 1''Spam 2');
        
$call_options $this->get_call_options(
            
$this->campaign_base_route.'spam.json?date='.$since);

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($deserialised$response_code);

        
$this->setup_transport_and_serialisation($transport_result$call_options,
            
$deserialised$raw_resultNULLNULL$response_code);

        
$result $this->wrapper->get_spam($since);

        
$this->assertIdentical($expected_result$result);
    }

    function 
testunschedule() {
        
$raw_result '';
        
$response_code 200;

        
$call_options $this->get_call_options($this->campaign_base_route.'unschedule.json''POST');

        
$transport_result = array (
            
'code' => $response_code
            
'response' => $raw_result
        
);
        
        
$expected_result = new CS_REST_Wrapper_Result($raw_result$response_code);

        
$this->setup_transport_and_serialisation($transport_result$call_options,
        
$raw_result$raw_resultNULLNULL$response_code);

        
$result $this->wrapper->unschedule();

        
$this->assertIdentical($expected_result$result);
    }
}
Онлайн: 0
Реклама