-
-
Notifications
You must be signed in to change notification settings - Fork 499
/
GalleryControllerTest.php
122 lines (93 loc) · 4.75 KB
/
GalleryControllerTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
declare(strict_types=1);
/*
* This file is part of the Sonata Project package.
*
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Sonata\MediaBundle\Tests\Controller\Api;
use FOS\RestBundle\Request\ParamFetcherInterface;
use PHPUnit\Framework\TestCase;
use Sonata\MediaBundle\Controller\Api\GalleryController;
use Sonata\MediaBundle\Model\GalleryInterface;
use Sonata\MediaBundle\Model\GalleryItemInterface;
use Sonata\MediaBundle\Model\GalleryManagerInterface;
use Sonata\MediaBundle\Model\MediaInterface;
use Sonata\MediaBundle\Model\MediaManagerInterface;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* @author Hugo Briand <briand@ekino.com>
*/
class GalleryControllerTest extends TestCase
{
public function testGetGalleriesAction(): void
{
$galleryManager = $this->createMock(GalleryManagerInterface::class);
$mediaManager = $this->createMock(MediaManagerInterface::class);
$formFactory = $this->createMock(FormFactoryInterface::class);
$galleryManager->expects($this->once())->method('getPager')->willReturn([]);
$gController = new GalleryController($galleryManager, $mediaManager, $formFactory, 'test');
$paramFetcher = $this->createMock(ParamFetcherInterface::class);
$paramFetcher->expects($this->exactly(3))->method('get');
$paramFetcher
->expects($this->once())
->method('all')
->willReturn([
'page' => 1,
'count' => 10,
'orderBy' => ['id' => 'ASC'],
]);
$this->assertSame([], $gController->getGalleriesAction($paramFetcher));
}
public function testGetGalleryAction(): void
{
$galleryManager = $this->createMock(GalleryManagerInterface::class);
$mediaManager = $this->createMock(MediaManagerInterface::class);
$gallery = $this->createMock(GalleryInterface::class);
$formFactory = $this->createMock(FormFactoryInterface::class);
$galleryManager->expects($this->once())->method('findOneBy')->willReturn($gallery);
$gController = new GalleryController($galleryManager, $mediaManager, $formFactory, 'test');
$this->assertSame($gallery, $gController->getGalleryAction(1));
}
public function testGetGalleryNotFoundAction(): void
{
$this->expectException(NotFoundHttpException::class);
$this->expectExceptionMessage('Gallery (42) not found');
$galleryManager = $this->createMock(GalleryManagerInterface::class);
$mediaManager = $this->createMock(MediaManagerInterface::class);
$formFactory = $this->createMock(FormFactoryInterface::class);
$galleryManager->expects($this->once())->method('findOneBy');
$gController = new GalleryController($galleryManager, $mediaManager, $formFactory, 'test');
$gController->getGalleryAction(42);
}
public function testGetGalleryGalleryItemsAction(): void
{
$galleryManager = $this->createMock(GalleryManagerInterface::class);
$galleryItem = $this->createMock(GalleryItemInterface::class);
$gallery = $this->createMock(GalleryInterface::class);
$formFactory = $this->createMock(FormFactoryInterface::class);
$gallery->expects($this->once())->method('getGalleryItems')->willReturn([$galleryItem]);
$galleryManager->expects($this->once())->method('findOneBy')->willReturn($gallery);
$mediaManager = $this->createMock(MediaManagerInterface::class);
$gController = new GalleryController($galleryManager, $mediaManager, $formFactory, 'test');
$this->assertSame([$galleryItem], $gController->getGalleryGalleryItemsAction(1));
}
public function testGetGalleryMediaAction(): void
{
$media = $this->createMock(MediaInterface::class);
$formFactory = $this->createMock(FormFactoryInterface::class);
$galleryItem = $this->createMock(GalleryItemInterface::class);
$gallery = $this->createMock(GalleryInterface::class);
$galleryManager = $this->createMock(GalleryManagerInterface::class);
$mediaManager = $this->createMock(MediaManagerInterface::class);
$galleryItem->expects($this->once())->method('getMedia')->willReturn($media);
$gallery->expects($this->once())->method('getGalleryItems')->willReturn([$galleryItem]);
$galleryManager->expects($this->once())->method('findOneBy')->willReturn($gallery);
$gController = new GalleryController($galleryManager, $mediaManager, $formFactory, 'test');
$this->assertSame([$media], $gController->getGalleryMediasAction(1));
}
}