DonationHandlerTest.php 2.41 KB
Newer Older
1
2
3
4
5
6
7
<?php

namespace LQDN\Tests\Functional\Handler;

use LQDN\Command\DonationInvalidateCommand;
use LQDN\Command\DonationResetPdfCommand;
use LQDN\Command\DonationValidateCommand;
Okhin's avatar
Okhin committed
8
use LQDN\Command\DonationCreateCommand;
9
use LQDN\Command\DonationIncStatusCommand;
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use LQDN\Tests\Functional\FunctionalTest;

class DonationHandlerTest extends FunctionalTest
{
    public function testDonationValidation()
    {
        $this->assertEquals(1, $this->getDonation(1)['status']);
        $this->container['command_handler']->handle(new DonationInvalidateCommand(1));
        $this->assertEquals(0, $this->getDonation(1)['status']);
        $this->container['command_handler']->handle(new DonationValidateCommand(1));
        $this->assertEquals(1, $this->getDonation(1)['status']);
    }

    public function testDonationResetPdf()
    {
        $this->assertEquals('pdf', $this->getDonation(1)['pdf']);
        $this->container['command_handler']->handle(new DonationResetPdfCommand(1));
        $this->assertEquals('', $this->getDonation(1)['pdf']);
    }

30
31
32
33
34
35
36

    private function testDonationByUser()
    {
        $this->assertEquals(2, count($this->getDonationByUser(2)));
        $this->assertEquals(2, $this->getDonationByUser(2)[0]['user_id']);
    }

Okhin's avatar
Okhin committed
37
38
39
40
41
42
    public function testDonationCreateCommand()
    {
        $this->container['command_handler']->handle(new DonationCreateCommand(1, 1, date("Y-m-d H:M:s"), 50, 0, 0));

    }

43
44
45
46
47
48
49
50
51
52
    public function testDonationIncStatusCommand()
    {
        // Let's get the previous status
        $don = $this->container['donation_finder']->findById(1);
        $prev_status = $don['status'];

        // Update
        $this->container['command_handler']->handle(new DonationIncStatusCommand($don['id']));
        $don = $this->container['donation_finder']->findById(1);
        $this->assertEquals($prev_status + 1, $don['status']);
Okhin's avatar
Okhin committed
53

54
55
56
57
        // Remise en état
        $this->container['db']->executeUpdate("UPDATE dons SET status = status - 1 WHERE id = :id",
        [ 'id' => $don['id']]);
    }
58
59
60
61
62
63
64
65
66
    /**
     * Retrieve a donation
     *
     * @return []
     */
    private function getDonation($id)
    {
        return $this->container['db']->fetchAssoc("SELECT * FROM dons WHERE id = $id");
    }
67
68
69
70
71
72
73
74
75
76

    /**
     * Retrieve donations by userid
     *
     * @return []
     */
    private function getDonationByUser($uid)
    {
        return $this->container['db']->fetchAll("SELECT * FROM dons WHERE user_id = $uid");
    }
77
}