Skip to content

Commit 9c0caa2

Browse files
Navneet RaiNavneet Rai
Navneet Rai
authored and
Navneet Rai
committed
Added travis Yml
1 parent 5573f99 commit 9c0caa2

File tree

5 files changed

+114
-6
lines changed

5 files changed

+114
-6
lines changed

.travis.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
language: php
2+
3+
php:
4+
- 5.4
5+
- 5.5
6+
- 5.6
7+
- 7.0
8+
- hhvm
9+
10+
#branches:
11+
# only:
12+
# - master
13+
14+
before_script:
15+
- travis_retry composer self-update
16+
- travis_retry composer install --no-interaction --prefer-source
17+
18+
script:
19+
- ./vendor/bin/phpunit

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
[![Latest Unstable Version](https://poser.pugx.org/navneetrai/laravel-subscription/v/unstable.svg)](https://packagist.org/packages/navneetrai/laravel-subscription)
88
[![License](https://poser.pugx.org/navneetrai/laravel-subscription/license.svg)](https://packagist.org/packages/navneetrai/laravel-subscription)
99

10-
laravel-subscription is a simple laravel 5 library for creating subscription billing and handling server notifications.
10+
laravel-subscription is a simple laravel 5 library for creating subscription billing and handling server notifications. It is primarily meant for people outside countries like US, UK and Canada where [Stripe](https://stripe.com/), [Paypal Payments Pro](https://www.paypal.com/webapps/mpp/paypal-payments-pro) are not available.
11+
12+
If you want to handle non-recurring payments, you can use [Omnipay](http://omnipay.thephpleague.com/) for one-time payments and token billing.
1113

1214
---
1315

src/Mocks/MockService.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php namespace Userdesk\Subscription\Mocks;
22

33
use Userdesk\Subscription\Classes\TransactionResult;
4+
use Userdesk\Subscription\Classes\ProcessorInfo;
45
use Userdesk\Subscription\Exceptions\TransactionException;
56

67
use Userdesk\Subscription\Contracts\Product as SubscriptionProductContract;
@@ -62,4 +63,13 @@ public function pdt(array $input){
6263
return new TransactionResult($item_number, $subscr_id, 0, $payment_status, $action, $keys->get());
6364

6465
}
66+
67+
/**
68+
* Return Processor Info.
69+
*
70+
* @return \Userdesk\Subscription\Classes\ProcessorInfo|null
71+
*/
72+
public function info(){
73+
new ProcessorInfo('Mock', '/vendor/laravel-subscription/logo/mock.png', 'http://www.example.com');
74+
}
6575
}

tests/SubscriptionFactoryTest.php

Lines changed: 74 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,30 @@
1-
<?php
1+
<?php namespace Userdesk\Tests\Subscription;
22

33
use Illuminate\Foundation\Testing\WithoutMiddleware;
44
use Illuminate\Foundation\Testing\DatabaseMigrations;
55
use Illuminate\Foundation\Testing\DatabaseTransactions;
66

77
use Userdesk\Subscription\SubscriptionFactory;
88

9-
class SubscriptionFactoryTest extends Orchestra\Testbench\TestCase
9+
use Config;
10+
11+
class SubscriptionFactoryTest extends \Orchestra\Testbench\TestCase
1012
{
1113

14+
/**
15+
* @covers Userdesk\Subscription\SubscriptionFactory::createService
16+
*/
1217
public function testCreateServiceThrowsExceptionIfNoConfig(){
1318
$this->setExpectedException('\\Userdesk\Subscription\Exceptions\SubscriptionException');
1419
$factory = new SubscriptionFactory();
1520
$service = $factory->createService('paypal');
1621
}
1722

23+
/**
24+
* @covers Userdesk\Subscription\SubscriptionFactory::createService
25+
* @covers Userdesk\Subscription\SubscriptionFactory::fullyQualifiedServiceName
26+
* @covers Userdesk\Subscription\SubscriptionFactory::buildService
27+
*/
1828
public function testCreateServiceNonExistentService() {
1929
Config::set('subscription.services.foo.email', '[email protected]');
2030

@@ -24,6 +34,11 @@ public function testCreateServiceNonExistentService() {
2434
$this->assertNull($service);
2535
}
2636

37+
/**
38+
* @covers Userdesk\Subscription\SubscriptionFactory::createService
39+
* @covers Userdesk\Subscription\SubscriptionFactory::fullyQualifiedServiceName
40+
* @covers Userdesk\Subscription\SubscriptionFactory::buildService
41+
*/
2742
public function testCreateServicePreLoaded(){
2843
Config::set('subscription.services.paypal.email', '[email protected]');
2944

@@ -32,7 +47,40 @@ public function testCreateServicePreLoaded(){
3247

3348
$this->assertInstanceOf('Userdesk\\Subscription\\Services\\Paypal', $service);
3449
}
50+
51+
/**
52+
* @covers Userdesk\Subscription\SubscriptionFactory::registerService
53+
*/
54+
public function testRegisterServiceThrowsExceptionIfNonExistentClass(){
55+
$this->setExpectedException('\\Userdesk\Subscription\Exceptions\SubscriptionException');
56+
$factory = new SubscriptionFactory();
57+
$factory->registerService('foo', 'bar');
58+
}
59+
60+
/**
61+
* @covers Userdesk\Subscription\SubscriptionFactory::registerService
62+
*/
63+
public function testRegisterServiceThrowsExceptionIfClassNotFulfillsContract(){
64+
$this->setExpectedException('\\Userdesk\Subscription\Exceptions\SubscriptionException');
65+
$factory = new SubscriptionFactory();
66+
$factory->registerService('foo', 'Userdesk\\Subscription\\SubscriptionFactory');
67+
}
3568

69+
/**
70+
* @covers Userdesk\Subscription\SubscriptionFactory::registerService
71+
*/
72+
public function testRegisterServiceSuccessIfClassFulfillsContract(){
73+
$factory = new SubscriptionFactory();
74+
$this->assertInstanceOf(
75+
'Userdesk\\Subscription\\SubscriptionFactory',
76+
$factory->registerService('foo', 'Userdesk\\Subscription\\Mocks\\MockService')
77+
);
78+
}
79+
80+
/**
81+
* @covers Userdesk\Subscription\SubscriptionFactory::registerServiceAlias
82+
* @covers Userdesk\Subscription\SubscriptionFactory::registerService
83+
*/
3684
public function testRegisterServiceAlias(){
3785
Config::set('subscription.services.paypal.email', '[email protected]');
3886
Config::set('subscription.services.alias.email', '[email protected]');
@@ -49,6 +97,12 @@ public function testRegisterServiceAlias(){
4997
$this->assertInstanceOf('Userdesk\\Subscription\\Services\\Paypal', $newService);
5098
}
5199

100+
/**
101+
* @covers Userdesk\Subscription\SubscriptionFactory::createService
102+
* @covers Userdesk\Subscription\SubscriptionFactory::fullyQualifiedServiceName
103+
* @covers Userdesk\Subscription\SubscriptionFactory::registerService
104+
* @covers Userdesk\Subscription\SubscriptionFactory::buildService
105+
*/
52106
public function testCreateServiceUserRegistered(){
53107
Config::set('subscription.services.foo.email', '[email protected]');
54108

@@ -61,6 +115,23 @@ public function testCreateServiceUserRegistered(){
61115

62116
$newService = $factory->createService('foo');
63117

64-
$this->assertInstanceOf('Userdesk\\Subscription\\Contracts\\Processor', $newService);
118+
$this->assertInstanceOf('Userdesk\\Subscription\\Contracts\\Service', $newService);
119+
}
120+
121+
/**
122+
* @covers Userdesk\Subscription\SubscriptionFactory::createService
123+
* @covers Userdesk\Subscription\SubscriptionFactory::fullyQualifiedServiceName
124+
* @covers Userdesk\Subscription\SubscriptionFactory::registerService
125+
* @covers Userdesk\Subscription\SubscriptionFactory::buildService
126+
*/
127+
public function testCreateServiceUserRegisteredOverridesPreLoaded(){
128+
Config::set('subscription.services.paypal.email', '[email protected]');
129+
130+
$factory = new SubscriptionFactory();
131+
$factory->registerService('paypal', 'Userdesk\Subscription\Mocks\MockService');
132+
133+
$service = $factory->createService('paypal');
134+
135+
$this->assertInstanceOf('Userdesk\\Subscription\\Mocks\\MockService', $service);
65136
}
66137
}

tests/SubscriptionTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php
1+
<?php namespace Userdesk\Tests\Subscription;
22

33
use Illuminate\Foundation\Testing\WithoutMiddleware;
44
use Illuminate\Foundation\Testing\DatabaseMigrations;
@@ -7,7 +7,10 @@
77
use Userdesk\Subscription\Subscription;
88
use Userdesk\Subscription\SubscriptionFactory;
99

10-
class SubscriptionTest extends Orchestra\Testbench\TestCase
10+
use Config;
11+
use Mockery;
12+
13+
class SubscriptionTest extends \Orchestra\Testbench\TestCase
1114
{
1215

1316
public function tearDown()
@@ -28,6 +31,9 @@ protected function getPackageAliases($app)
2831
);
2932
}
3033

34+
/**
35+
* @covers Userdesk\Subscription\Subscription::processor
36+
*/
3137
public function testCreateProcessor()
3238
{
3339
Config::set('subscription.services.paypal.email', '[email protected]');

0 commit comments

Comments
 (0)