Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/ts.corals.io/corals-api/vendor/nztim/mailchimp/tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/ts.corals.io/corals-api/vendor/nztim/mailchimp/tests/MailchimpTest.php
<?php

use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
use NZTim\Mailchimp\Exception\MailchimpBadRequestException;
use NZTim\Mailchimp\Exception\MailchimpInternalErrorException;
use NZTim\Mailchimp\Mailchimp;
use NZTim\Mailchimp\MailchimpApi;
use PHPUnit\Framework\TestCase;

class MailchimpTest extends TestCase
{
    use MockeryPHPUnitIntegration;

    /** @var Mockery\Mock */
    protected $api;
    /** @var Mailchimp */
    protected $mc;

    const LISTID = 'listId';

    /** @before */
    public function prepare()
    {
        $this->api = Mockery::mock(MailchimpApi::class);
        $this->mc = new Mailchimp('apikey', $this->api);
    }

    /** @test */
    public function get_lists_empty()
    {
        $this->api->shouldReceive('getLists')->andReturn([]);
        $this->assertEquals([], $this->mc->getLists());
    }

    /** @test */
    public function get_lists()
    {
        $this->api->shouldReceive('getLists')->andReturn(['lists' => ['1', '2', '3']]);
        $this->assertEquals(['1', '2', '3'], $this->mc->getLists());
    }

    /** @test */
    public function get_lists_with_params()
    {
        $this->api->shouldReceive('getLists')->with([1, 2, 3])->andReturn(['lists' => ['1', '2', '3']]);
        $this->assertEquals(['1', '2', '3'], $this->mc->getLists([1, 2, 3]));
    }

    /**
     * @test
     * @expectedException NZTim\Mailchimp\Exception\MailchimpBadRequestException
     * @expectedExceptionMessage Mailchimp API error: list id:listId does not exist
     */
    public function status_list_not_found()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andThrow(new MailchimpBadRequestException);
        $this->api->shouldReceive('responseCodeNotFound')->andReturn(true);
        $this->mc->status(self::LISTID, '[email protected]');
    }

    /**
     * @test
     * @expectedException NZTim\Mailchimp\Exception\MailchimpInternalErrorException
     * @expectedExceptionMessage Mailchimp API error: Internal error
     */
    public function status_api_internal_error()
    {
        $this->api->shouldReceive('getList')
            ->with(self::LISTID)
            ->andThrow(new MailchimpInternalErrorException("Mailchimp API error: Internal error"));
        $this->api->shouldReceive('responseCodeNotFound')->andReturn(false);
        $this->mc->status(self::LISTID, '[email protected]');
    }

    /** @test */
    public function status_member_not_found()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andThrow(new MailchimpBadRequestException);
        $this->api->shouldReceive('responseCodeNotFound')->andReturn(true);
        $this->assertEquals('not found', $this->mc->status(self::LISTID, '[email protected]'));
    }

    /**
     * @test
     * @expectedException NZTim\Mailchimp\Exception\MailchimpException
     */
    public function status_unknown_error()
    {
        $this->api->shouldReceive('getList')->with('listId')->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn([]);
        $this->mc->status(self::LISTID, '[email protected]');
    }

    /** @test */
    public function status_success()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn(['status' => 'subscribed']);
        $this->assertEquals('subscribed', $this->mc->status(self::LISTID, '[email protected]'));
    }

    /** @test */
    public function check_subscribed()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn(['status' => 'subscribed']);
        $this->assertTrue($this->mc->check(self::LISTID, '[email protected]'));
    }

    /** @test */
    public function check_not_subscribed()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn(['status' => 'unsubscribed']);
        $this->assertFalse($this->mc->check(self::LISTID, '[email protected]'));
    }

    /** @test */
    public function subscribe_new_member_confirms_by_default()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andThrow(new MailchimpBadRequestException);
        $this->api->shouldReceive('responseCodeNotFound')->andReturn(true);
        $this->api->shouldReceive('addUpdate')->with(self::LISTID, '[email protected]', [], true); // true = confirmation required
        $this->mc->subscribe(self::LISTID, '[email protected]');
    }

    /** @test */
    public function subscribe_existing_member_turns_off_confirm()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn(['status' => 'subscribed']);
        $this->api->shouldReceive('addUpdate')->with(self::LISTID, '[email protected]', [], false);
        $this->mc->subscribe(self::LISTID, '[email protected]', [], true);
    }

    /** @test */
    public function unsubscribe_not_subscribed()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn(['status' => 'unsubscribed']);
        $this->mc->unsubscribe(self::LISTID, '[email protected]');
    }

    /** @test */
    public function unsubscribe()
    {
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn(['status' => 'subscribed']);
        $this->api->shouldReceive('unsubscribe')->with(self::LISTID, '[email protected]');
        $this->mc->unsubscribe(self::LISTID, '[email protected]');
    }

    /** @test */
    public function api_passes_call_through()
    {
        $this->api->shouldReceive('call')->with('someMethod', '/endpoint', ['data' => 123])->andReturn(['test' => 'result']);
        $this->assertEquals(['test' => 'result'], $this->mc->api('someMethod', '/endpoint', ['data' => 123]));
    }

    /** @test */
    public function api_handles_endpoint_without_leading_slash()
    {
        $this->api->shouldReceive('call')->with('get', '/endpoint', [])->andReturn(['data' => 123])->once();
        $this->assertEquals(['data' => 123], $this->mc->api('get', 'endpoint'));
    }

    /** @test */
    public function add_update_member_new()
    {
        $member = (new \NZTim\Mailchimp\Member('[email protected]'));
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andThrow(new MailchimpBadRequestException);
        $this->api->shouldReceive('responseCodeNotFound')->andReturn(true);
        $this->api->shouldReceive('addUpdateMember')->with(self::LISTID, $member);
        $this->mc->addUpdateMember(self::LISTID, $member);
        $this->assertEquals('pending', $member->parameters()['status_if_new']);
    }

    /** @test */
    public function add_update_member_existing()
    {
        $member = (new \NZTim\Mailchimp\Member('[email protected]'));
        $this->api->shouldReceive('getList')->with(self::LISTID)->andReturn([]);
        $this->api->shouldReceive('getMember')->andReturn(['status' => 'subscribed']);
        $this->api->shouldReceive('addUpdateMember')->with(self::LISTID, $member);
        $this->mc->addUpdateMember(self::LISTID, $member);
        $this->assertEquals('subscribed', $member->parameters()['status']);
    }
}

Spamworldpro Mini