public function testInterestCalculation()
 {
     $jsonBody = '{"sum":123,"days":5}';
     $im = new InterestMessage($jsonBody);
     $im->calculateInterestAmount();
     $im->calculateTotalSum();
     $this->assertEquals($im->getInterest(), 18.45);
     $this->assertEquals($im->getTotalSum(), 141.45);
 }
Пример #2
0
require __DIR__ . '/vendor/autoload.php';
require_once 'app/models/InterestMessage.php';
use Rory\MyJar_Test\App\Models\InterestMessage;
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$server = 'impact.ccat.eu';
$port = 5672;
$username = '******';
$password = '******';
$connection = new AMQPStreamConnection($server, $port, $username, $password);
$channel = $connection->channel();
$callback = function ($queueMessage) {
    echo $queueMessage->body . PHP_EOL;
    $token = 'rory';
    $interestMessage = new InterestMessage($queueMessage->body, $token);
    if (!$interestMessage->isValid()) {
        echo "### Invalid message received, ignoring: " . $queueMessage->body . PHP_EOL;
        return false;
    }
    $interestMessage->calculateInterestAmount();
    $interestMessage->calculateTotalSum();
    $queueMessage->setBody(json_encode($interestMessage));
    echo $queueMessage->body . PHP_EOL;
    $deliveryChannel = $queueMessage->delivery_info['channel'];
    $deliveryChannel->basic_publish($queueMessage, '', 'solved-interest-queue');
};
$channel->basic_consume('interest-queue', '', false, true, false, false, $callback);
while (count($channel->callbacks)) {
    $channel->wait();
}