Passed
Push — master ( aeaa07...061ddd )
by Thiago
03:33
created

FileNameCreator::create()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 9
ccs 5
cts 5
cp 1
crap 1
rs 10
1
<?php
2
3
4
namespace MrPrompt\BoletoCaixaEconomicaFederal\Shipment;
5
6
use DateTime;
7
use MrPrompt\ShipmentCommon\Base\Customer;
8
use MrPrompt\ShipmentCommon\Base\Sequence;
9
use MrPrompt\ShipmentCommon\Util\Number;
10
11
/**
12
 * Class FileNameCreator
13
 * @package MrPrompt\BoletoCaixaEconomicaFederal\Shipment
14
 */
15
class FileNameCreator
16
{
17
    /**
18
     * File name template
19
     *
20
     * @var string
21
     */
22
    const TEMPLATE_GENERATED = '{CLIENT}_{DDMMYYYY}_{SEQUENCE}.HTML';
23
24
    /**
25
     * @var array
26
     */
27
    private $search = [
28
        '{CLIENT}',
29
        '{DDMMYYYY}',
30
        '{SEQUENCE}'
31
    ];
32
33
    /**
34
     * @param Customer $customer
35
     * @param Sequence $sequence
36
     * @param DateTime $now
37
     * @return mixed
38
     */
39 1
    public function create(Customer $customer, Sequence $sequence, DateTime $now)
40
    {
41
        $replace = [
42 1
            Number::zeroFill($customer->getCode(), 6, Number::FILL_LEFT),
43 1
            $now->format('dmY'),
44 1
            Number::zeroFill($sequence->getValue(), 5, Number::FILL_LEFT),
45
        ];
46
47 1
        return str_replace($this->search, $replace, self::TEMPLATE_GENERATED);
48
    }
49
}