Code Duplication    Length = 54-54 lines in 2 locations

app/Containers/Payments/Tests/ChargeUsersTest.php 1 location

@@ 18-71 (lines=54) @@
15
 *
16
 * @author Mahmoud Zalt <[email protected]>
17
 */
18
class ChargeUsersTest extends TestCase
19
{
20
21
    public function testChargeWithStripe()
22
    {
23
        // get the logged in user (create one if no one is logged in)
24
        $user = $this->registerAndLoginTestingUser();
25
26
        // create stripe account for this user
27
        $createStripeAccountAction = App::make(CreateStripeAccountAction::class);
28
        $stripeAccount = $createStripeAccountAction->run($user, 'cus_8mBD5S1SoyD4zL', 'card_18Uck6KFvMcBUkvQorbBkYhR', 'credit', '4242', 'WsNM4K8puHbdS2VP');
29
30
        $payId = 'ch_z8WDARKFvzcBUkvQzrbBvfhz';
31
32
        // mock the ChargeWithStripeService external API call
33
        $this->mock(ChargeWithStripeService::class)->shouldReceive('charge')->andReturn([
34
            'payment_method' => 'stripe',
35
            'description'    => $payId
36
        ]);
37
38
        $paymentsFactory = new PaymentsFactory();
39
        $result = $paymentsFactory->charge($user, 1000, 'USD');
40
41
        $this->assertEquals($result['payment_method'], 'stripe');
42
        $this->assertEquals($result['description'], $payId);
43
    }
44
45
    public function testChargeWithPaypal()
46
    {
47
        // get the logged in user (create one if no one is logged in)
48
        $user = $this->registerAndLoginTestingUser();
49
50
        // create stripe account for this user
51
        $createPaypalAccountAction = App::make(CreatePaypalAccountAction::class);
52
        $paypalAccount = $createPaypalAccountAction->run($user, '8mBD5S1SoyD4zL');
53
54
        $payId = 'PAY-04797768K5905283VK6DGEMZ';
55
56
        // mock the ChargeWithPaypalService external API call
57
        $this->mock(ChargeWithPaypalService::class)->shouldReceive('charge')->andReturn([
58
            'payment_method' => 'paypal',
59
            'description'    => $payId
60
        ]);
61
62
        // TODO: comment out the pocking part above and test the real API call
63
64
        $paymentsFactory = new PaymentsFactory();
65
        $result = $paymentsFactory->charge($user, 1000, 'USD');
66
67
        $this->assertEquals($result['payment_method'], 'paypal');
68
        $this->assertEquals($result['description'], $payId);
69
    }
70
71
}
72

app/Containers/Payments/Tests/Unit/ChargeUsersTest.php 1 location

@@ 18-71 (lines=54) @@
15
 *
16
 * @author Mahmoud Zalt <[email protected]>
17
 */
18
class ChargeUsersTest extends TestCase
19
{
20
21
    public function testChargeWithStripe()
22
    {
23
        // get the logged in user (create one if no one is logged in)
24
        $user = $this->registerAndLoginTestingUser();
25
26
        // create stripe account for this user
27
        $createStripeAccountAction = App::make(CreateStripeAccountAction::class);
28
        $stripeAccount = $createStripeAccountAction->run($user, 'cus_8mBD5S1SoyD4zL', 'card_18Uck6KFvMcBUkvQorbBkYhR', 'credit', '4242', 'WsNM4K8puHbdS2VP');
29
30
        $payId = 'ch_z8WDARKFvzcBUkvQzrbBvfhz';
31
32
        // mock the ChargeWithStripeService external API call
33
        $this->mock(ChargeWithStripeService::class)->shouldReceive('charge')->andReturn([
34
            'payment_method' => 'stripe',
35
            'description'    => $payId
36
        ]);
37
38
        $paymentsFactory = new PaymentsFactory();
39
        $result = $paymentsFactory->charge($user, 1000, 'USD');
40
41
        $this->assertEquals($result['payment_method'], 'stripe');
42
        $this->assertEquals($result['description'], $payId);
43
    }
44
45
    public function testChargeWithPaypal()
46
    {
47
        // get the logged in user (create one if no one is logged in)
48
        $user = $this->registerAndLoginTestingUser();
49
50
        // create stripe account for this user
51
        $createPaypalAccountAction = App::make(CreatePaypalAccountAction::class);
52
        $paypalAccount = $createPaypalAccountAction->run($user, '8mBD5S1SoyD4zL');
53
54
        $payId = 'PAY-04797768K5905283VK6DGEMZ';
55
56
        // mock the ChargeWithPaypalService external API call
57
        $this->mock(ChargeWithPaypalService::class)->shouldReceive('charge')->andReturn([
58
            'payment_method' => 'paypal',
59
            'description'    => $payId
60
        ]);
61
62
        // TODO: comment out the pocking part above and test the real API call
63
64
        $paymentsFactory = new PaymentsFactory();
65
        $result = $paymentsFactory->charge($user, 1000, 'USD');
66
67
        $this->assertEquals($result['payment_method'], 'paypal');
68
        $this->assertEquals($result['description'], $payId);
69
    }
70
71
}
72