Вход Регистрация
Файл: Main Website Files/assets/libraries/stripe-php-2.2.0/tests/CustomerTest.php
Строк: 123
<?php

namespace Stripe;

class 
CustomerTest extends TestCase
{
    public function 
testDeletion()
    {
        
$customer self::createTestCustomer();
        
$customer->delete();

        
$this->assertTrue($customer->deleted);
        
$this->assertNull($customer['active_card']);
    }

    public function 
testSave()
    {
        
$customer self::createTestCustomer();

        
$customer->email 'gdb@stripe.com';
        
$customer->save();
        
$this->assertSame($customer->email'gdb@stripe.com');

        
$stripeCustomer Customer::retrieve($customer->id);
        
$this->assertSame($customer->email$stripeCustomer->email);

        
Stripe::setApiKey(null);
        
$customer Customer::create(nullself::API_KEY);
        
$customer->email 'gdb@stripe.com';
        
$customer->save();

        
self::authorizeFromEnv();
        
$updatedCustomer Customer::retrieve($customer->id);
        
$this->assertSame($updatedCustomer->email'gdb@stripe.com');
    }

    
/**
     * @expectedException StripeErrorInvalidRequest
     */
    
public function testBogusAttribute()
    {
        
$customer self::createTestCustomer();
        
$customer->bogus 'bogus';
        
$customer->save();
    }

    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testUpdateDescriptionEmpty()
    {
        
$customer self::createTestCustomer();
        
$customer->description '';
    }

    public function 
testUpdateDescriptionNull()
    {
        
$customer self::createTestCustomer(array('description' => 'foo bar'));
        
$customer->description null;

        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$this->assertSame(null$updatedCustomer->description);
    }

    public function 
testUpdateMetadata()
    {
        
$customer self::createTestCustomer();

        
$customer->metadata['test'] = 'foo bar';
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$this->assertSame('foo bar'$updatedCustomer->metadata['test']);
    }

    public function 
testDeleteMetadata()
    {
        
$customer self::createTestCustomer();

        
$customer->metadata null;
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$this->assertSame(0count($updatedCustomer->metadata->keys()));
    }

    public function 
testUpdateSomeMetadata()
    {
        
$customer self::createTestCustomer();
        
$customer->metadata['shoe size'] = '7';
        
$customer->metadata['shirt size'] = 'XS';
        
$customer->save();

        
$customer->metadata['shoe size'] = '9';
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$this->assertSame('XS'$updatedCustomer->metadata['shirt size']);
        
$this->assertSame('9'$updatedCustomer->metadata['shoe size']);
    }

    public function 
testUpdateAllMetadata()
    {
        
$customer self::createTestCustomer();
        
$customer->metadata['shoe size'] = '7';
        
$customer->metadata['shirt size'] = 'XS';
        
$customer->save();

        
$customer->metadata = array('shirt size' => 'XL');
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$this->assertSame('XL'$updatedCustomer->metadata['shirt size']);
        
$this->assertFalse(isset($updatedCustomer->metadata['shoe size']));
    }

    
/**
     * @expectedException StripeErrorInvalidRequest
     */
    
public function testUpdateInvalidMetadata()
    {
        
$customer self::createTestCustomer();
        
$customer->metadata 'something';
        
$customer->save();
    }

    public function 
testCancelSubscription()
    {
        
$planID 'gold-' self::randomString();
        
self::retrieveOrCreatePlan($planID);

        
$customer self::createTestCustomer(
            array(
                
'plan' => $planID,
            )
        );

        
$customer->cancelSubscription(array('at_period_end' => true));
        
$this->assertSame($customer->subscription->status'active');
        
$this->assertTrue($customer->subscription->cancel_at_period_end);
        
$customer->cancelSubscription();
        
$this->assertSame($customer->subscription->status'canceled');
    }

    public function 
testCustomerAddCard()
    {
        
$token Token::create(
            array(
"card" => array(
                
"number" => "4242424242424242",
                
"exp_month" => 5,
                
"exp_year" => date('Y') + 3,
                
"cvc" => "314"
            
))
        );

        
$customer $this->createTestCustomer();
        
$createdCard $customer->sources->create(array("card" => $token->id));
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$updatedCards $updatedCustomer->sources->all();
        
$this->assertSame(count($updatedCards["data"]), 2);

    }

    public function 
testCustomerUpdateCard()
    {
        
$customer $this->createTestCustomer();
        
$customer->save();

        
$sources $customer->sources->all();
        
$this->assertSame(count($sources["data"]), 1);

        
$card $sources['data'][0];
        
$card->name "Jane Austen";
        
$card->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$updatedCards $updatedCustomer->sources->all();
        
$this->assertSame($updatedCards["data"][0]->name"Jane Austen");
    }

    public function 
testCustomerDeleteCard()
    {
        
$token Token::create(
            array(
"card" => array(
                
"number" => "4242424242424242",
                
"exp_month" => 5,
                
"exp_year" => date('Y') + 3,
                
"cvc" => "314"
            
))
        );

        
$customer $this->createTestCustomer();
        
$createdCard $customer->sources->create(array("card" => $token->id));
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$updatedCards $updatedCustomer->sources->all();
        
$this->assertSame(count($updatedCards["data"]), 2);

        
$deleteStatus $updatedCustomer->sources->retrieve($createdCard->id)->delete();
        
$this->assertTrue($deleteStatus->deleted);
        
$updatedCustomer->save();

        
$postDeleteCustomer Customer::retrieve($customer->id);
        
$postDeleteCards $postDeleteCustomer->sources->all();
        
$this->assertSame(count($postDeleteCards["data"]), 1);
    }

    public function 
testCustomerAddSource()
    {
        
self::authorizeFromEnv();
        
$token Token::create(
            array(
"card" => array(
                
"number" => "4242424242424242",
                
"exp_month" => 5,
                
"exp_year" => date('Y') + 3,
                
"cvc" => "314"
            
))
        );

        
$customer $this->createTestCustomer();
        
$createdSource $customer->sources->create(array("source" => $token->id));
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$updatedSources $updatedCustomer->sources->all();
        
$this->assertSame(count($updatedSources["data"]), 2);

    }

    public function 
testCustomerUpdateSource()
    {
        
$customer $this->createTestCustomer();
        
$customer->save();

        
$sources $customer->sources->all();
        
$this->assertSame(count($sources["data"]), 1);

        
$source $sources['data'][0];
        
$source->name "Jane Austen";
        
$source->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$updatedSources $updatedCustomer->sources->all();
        
$this->assertSame($updatedSources["data"][0]->name"Jane Austen");
    }

    public function 
testCustomerDeleteSource()
    {
        
self::authorizeFromEnv();
        
$token Token::create(
            array(
"card" => array(
                
"number" => "4242424242424242",
                
"exp_month" => 5,
                
"exp_year" => date('Y') + 3,
                
"cvc" => "314"
            
))
        );

        
$customer $this->createTestCustomer();
        
$createdSource $customer->sources->create(array("source" => $token->id));
        
$customer->save();

        
$updatedCustomer Customer::retrieve($customer->id);
        
$updatedSources $updatedCustomer->sources->all();
        
$this->assertSame(count($updatedSources["data"]), 2);

        
$deleteStatus $updatedCustomer->sources->retrieve($createdSource->id)->delete();
        
$this->assertTrue($deleteStatus->deleted);
        
$updatedCustomer->save();

        
$postDeleteCustomer Customer::retrieve($customer->id);
        
$postDeleteSources $postDeleteCustomer->sources->all();
        
$this->assertSame(count($postDeleteSources["data"]), 1);
    }
}
Онлайн: 0
Реклама