<?php
/**
* Created by PhpStorm.
* User: Melvin
* Date: 14/5/2018
* Time: 11:29
*/
use PHPUnit\Framework\TestCase;
use Paynow\Payments\Paynow;
class FluentBuilderTest extends TestCase
{
public function testBuilderParseListOfItems()
{
$paynow = new Paynow(new \Paynow\Http\Client(), '', '');
$payment = $paynow->createPayment([
['title' => 'Candles', 'amount' => 1.5],
['title' => 'Sandwich', 'amount' => 2],
['title' => 'Bacon', 'amount' => 4],
]);
$this->assertEquals(3, $payment->count);
}
public function testBuilderCanComputeTotalOfItems()
{
$paynow = new Paynow(new \Paynow\Http\Client(), '', '');
$payment = $paynow->createPayment([
['title' => 'Candles', 'amount' => 1.5],
['title' => 'Sandwich', 'amount' => 2],
['title' => 'Bacon', 'amount' => 4],
]);
$this->assertEquals(7.5, $payment->total);
}
public function testBuilderCanAddItemsFluentsAfterInit()
{
$paynow = new Paynow(new \Paynow\Http\Client(), '', '');
$payment = $paynow->createPayment([
['title' => 'Candles', 'amount' => 1.5],
['title' => 'Sandwich', 'amount' => 2],
['title' => 'Bacon', 'amount' => 4],
]);
$payment->add('Tomatoes', 3);
$payment->add('Pork', 12);
$payment->add('Apple Pie', 2);
$this->assertEquals(6, $payment->count);
}
public function testBuilderCanAddItemsFluently()
{
$paynow = new Paynow(new \Paynow\Http\Client(), '', '');
$payment = $paynow->createPayment();
$payment
->add('Green Beans', 3)
->add('Tomatoes', 3)
->add('Pork', 12)
->add('Apple Pie', 2);
$this->assertEquals(4, $payment->count);
}
}