Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 32
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
CashActivityMapper
0.00% covered (danger)
0.00%
0 / 32
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 1
 mapFromJson
0.00% covered (danger)
0.00%
0 / 32
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace BuyerKiosk\Cash;
4
5class CashActivityMapper {
6
7    /**
8     * Maps JSON data from .NET app to CashActivity object
9     * @param string $jsonData
10     * @return CashActivity
11     */
12    public function mapFromJson(string $jsonData): CashActivity {
13        $data = json_decode($jsonData, true);
14
15        if (json_last_error() !== JSON_ERROR_NONE) {
16            throw new \InvalidArgumentException('Invalid JSON data provided: ' . json_last_error_msg());
17        }
18
19        error_log(var_export($data, true));
20
21        $cashActivity = new CashActivity();
22        $cashActivity->setTimeStamp($data['timeStamp'])
23            ->setUserId($data['user'])
24            ->setTransType($data['transType'])
25            ->setRegister($data['register'])
26            ->setDestination($data['vendor']) //Client sends 'vendor' instead of 'destination'
27            ->setPennies($data['pennies'])
28            ->setPennyRolls($data['pennyRolls'])
29            ->setNickels($data['nickels'])
30            ->setNickelRolls($data['nickelRolls'])
31            ->setDimes($data['dimes'])
32            ->setDimeRolls($data['dimeRolls'])
33            ->setQuarters($data['quarters'])
34            ->setQuarterRolls($data['quarterRolls'])
35            ->setOnes($data['ones'])
36            ->setOneRolls($data['oneRolls'])
37            ->setFives($data['fives'])
38            ->setFiveRolls($data['fiveRolls'])
39            ->setTens($data['tens'])
40            ->setTenRolls($data['tenRolls'])
41            ->setTwenties($data['twenties'])
42            ->setTwentyRolls($data['twentyRolls'])
43            ->setFifties($data['fifties'])
44            ->setFiftyRolls($data['fiftyRolls'])
45            ->setHundreds($data['hundreds'])
46            ->setHundredRolls($data['hundredRolls'])
47            ->setTotal($data['total']);
48
49        return $cashActivity;
50    }
51}