Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
setFixtureContext example
private
$nameProvider
;
private
Context
$context
;
protected
function
setUp
(
)
: void
{
$this
->nameProvider =
$this
->
getContainer
(
)
->
get
(
FileNameProvider::
class
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$this
->
setFixtureContext
(
$this
->context
)
;
}
public
function
testItReturnsOriginalName
(
)
: void
{
$media
=
$this
->
getEmptyMedia
(
)
;
$original
= 'test';
$new
=
$this
->nameProvider->
provide
(
$original
, 'png',
$media
->
getId
(
)
,
$this
->context
)
;
static
::
assertEquals
(
$original
,
$new
)
;
}
$this
->
assertMediaApiResponse
(
)
;
}
public
function
testRenameMediaFileThrowsExceptionIfFileNameIsNotPresent
(
)
: void
{
$dispatcher
=
$this
->
getContainer
(
)
->
get
(
'event_dispatcher'
)
;
$listener
=
$this
->
getMockBuilder
(
CallableClass::
class
)
->
getMock
(
)
;
$listener
->
expects
(
static
::
never
(
)
)
->
method
(
'__invoke'
)
;
$this
->
addEventListener
(
$dispatcher
, MediaUploadedEvent::
class
,
$listener
)
;
$context
= Context::
createDefaultContext
(
)
;
$this
->
setFixtureContext
(
$context
)
;
$media
=
$this
->
getPng
(
)
;
$url
=
sprintf
(
'/api/_action/media/%s/rename',
$media
->
getId
(
)
)
;
$this
->
getBrowser
(
)
->
request
(
'POST',
$url
,
[
]
,
[
]
,
$criteria
=
$this
->
getIdCriteria
(
$media
->
getId
(
)
)
;
$result
=
$this
->repository->
search
(
$criteria
,
$this
->context
)
;
$media
=
$result
->
getEntities
(
)
->
first
(
)
;
static
::
assertInstanceOf
(
MediaEntity::
class
,
$media
)
;
static
::
assertEquals
(
$media
->
getId
(
)
,
$media
->
getId
(
)
)
;
}
public
function
testThumbnailsAreConvertedToStructWhenFetchedFromDb
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$media
=
$this
->
getMediaWithThumbnail
(
)
;
$criteria
=
$this
->
getIdCriteria
(
$media
->
getId
(
)
)
;
$searchResult
=
$this
->repository->
search
(
$criteria
,
$this
->context
)
;
$fetchedMedia
=
$searchResult
->
getEntities
(
)
->
get
(
$media
->
getId
(
)
)
;
static
::
assertInstanceOf
(
MediaEntity::
class
,
$fetchedMedia
)
;
static
::
assertInstanceOf
(
MediaThumbnailCollection::
class
,
$fetchedMedia
->
getThumbnails
(
)
)
;
$persistedThumbnail
=
$fetchedMedia
->
getThumbnails
(
)
->
first
(
)
;
static
::
assertInstanceOf
(
MediaThumbnailEntity::
class
,
$persistedThumbnail
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$this
->unusedMediaPurger =
new
UnusedMediaPurger
(
$this
->mediaRepo,
new
EventDispatcher
(
)
)
;
}
public
function
testDeleteNotUsedMedia
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$txt
=
$this
->
getTxt
(
)
;
$png
=
$this
->
getPng
(
)
;
$withProduct
=
$this
->
getMediaWithProduct
(
)
;
$withManufacturer
=
$this
->
getMediaWithManufacturer
(
)
;
$urlGenerator
=
$this
->
getContainer
(
)
->
get
(
UrlGeneratorInterface::
class
)
;
$firstPath
=
$urlGenerator
->
getRelativeMediaUrl
(
$txt
)
;
$secondPath
=
$urlGenerator
->
getRelativeMediaUrl
(
$png
)
;
$thirdPath
=
$urlGenerator
->
getRelativeMediaUrl
(
$withProduct
)
;
$fourthPath
=
$urlGenerator
->
getRelativeMediaUrl
(
$withManufacturer
)
;
protected
function
assertThumbnailExists
(
MediaEntity
$media
, MediaThumbnailEntity
$thumbnail
)
: void
{
$thumbnailPath
=
$this
->urlGenerator->
getRelativeThumbnailUrl
(
$media
,
$thumbnail
)
;
static
::
assertTrue
(
$this
->
getPublicFilesystem
(
)
->
has
(
$thumbnailPath
)
)
;
}
protected
function
createValidMediaFiles
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$mediaPng
=
$this
->
getPngWithFolder
(
)
;
$mediaJpg
=
$this
->
getJpgWithFolder
(
)
;
$filePath
=
$this
->urlGenerator->
getRelativeMediaUrl
(
$mediaPng
)
;
$this
->
getPublicFilesystem
(
)
->
writeStream
(
$filePath
,
fopen
(
__DIR__ . '/../fixtures/shopware-logo.png', 'rb'
)
)
;
$filePath
=
$this
->urlGenerator->
getRelativeMediaUrl
(
$mediaJpg
)
;
$this
->
getPublicFilesystem
(
)
->
writeStream
(
$tempFile
=
tempnam
(
sys_get_temp_dir
(
)
, ''
)
;
static
::
assertIsString
(
$tempFile
)
;
copy
(
self::TEST_IMAGE,
$tempFile
)
;
$fileSize
=
filesize
(
$tempFile
)
;
static
::
assertIsInt
(
$fileSize
)
;
$mediaFile
=
new
MediaFile
(
$tempFile
, 'image/png', 'png',
$fileSize
)
;
$context
= Context::
createDefaultContext
(
)
;
$this
->
setFixtureContext
(
$context
)
;
$media
=
$this
->
getTxt
(
)
;
$oldMediaFilePath
=
$this
->urlGenerator->
getRelativeMediaUrl
(
$media
)
;
$this
->
getPublicFilesystem
(
)
->
write
(
$oldMediaFilePath
, 'Some '
)
;
static
::
assertIsString
(
$media
->
getFileName
(
)
)
;
try
{
$this
->fileSaver->
persistFileToMedia
(
$mediaFile
,
$media
->
getFileName
(
)
,
$this
->context = Context::
createDefaultContext
(
)
;
$this
->deleteMediaService =
new
DeleteNotUsedMediaService
(
$this
->mediaRepo,
$this
->
getContainer
(
)
->
get
(
'media_default_folder.repository'
)
)
;
}
public
function
testCountNotUsedMedia
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$this
->
getTxt
(
)
;
$this
->
getPngWithoutExtension
(
)
;
$this
->
getMediaWithProduct
(
)
;
$this
->
getMediaWithManufacturer
(
)
;
static
::
assertEquals
(
2,
$this
->deleteMediaService->
countNotUsedMedia
(
$this
->context
)
)
;
}
public
function
testDeleteNotUsedMedia
(
)
: void
{
$searchCriteria
=
new
Criteria
(
)
;
$mediaResult
=
$this
->mediaRepository->
search
(
$searchCriteria
,
$this
->context
)
;
/** @var MediaEntity $updatedMedia */
foreach
(
$mediaResult
->
getEntities
(
)
as
$updatedMedia
)
{
static
::
assertInstanceOf
(
MediaType::
class
,
$updatedMedia
->
getMediaType
(
)
)
;
}
}
public
function
testExecuteWithMediaWithoutFile
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$this
->
getEmptyMedia
(
)
;
$input
=
new
StringInput
(
''
)
;
$output
=
new
BufferedOutput
(
)
;
$this
->
runCommand
(
$this
->generateMediaTypesCommand,
$input
,
$output
)
;
$mediaResult
=
$this
->
getNewMediaEntities
(
)
;
/** @var MediaEntity $updatedMedia */
foreach
(
$mediaResult
as
$updatedMedia
)
{
static
::
assertNull
(
$updatedMedia
->
getMediaType
(
)
)
;
}
public
function
testDissolveForNonExistingFolder
(
)
: void
{
$folderId
= Uuid::
randomHex
(
)
;
$this
->
expectException
(
MediaException::
class
)
;
$this
->
expectExceptionMessage
(
MediaException::
mediaFolderIdNotFound
(
$folderId
)
->
getMessage
(
)
)
;
$this
->mediaFolderService->
dissolve
(
$folderId
,
$this
->context
)
;
}
public
function
testDissolveWithNoChildFolders
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$media
=
$this
->
getJpgWithFolder
(
)
;
$mediaFolderId
=
$media
->
getMediaFolderId
(
)
;
static
::
assertIsString
(
$mediaFolderId
)
;
$mediaFolder
=
$this
->mediaFolderRepo
->
search
(
new
Criteria
(
array_filter
(
[
$mediaFolderId
]
)
)
,
$this
->context
)
->
get
(
$mediaFolderId
)
;
static
::
assertInstanceOf
(
MediaFolderEntity::
class
,
$mediaFolder
)
;
$configId
=
$mediaFolder
->
getConfigurationId
(
)
;
$this
->urlGenerator =
$this
->
getContainer
(
)
->
get
(
UrlGeneratorInterface::
class
)
;
$this
->mediaRepository =
$this
->
getContainer
(
)
->
get
(
'media.repository'
)
;
$this
->thumbnailRepository =
$this
->
getContainer
(
)
->
get
(
'media_thumbnail.repository'
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$this
->handler =
$this
->
getContainer
(
)
->
get
(
GenerateThumbnailsHandler::
class
)
;
}
public
function
testGenerateThumbnails
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$media
=
$this
->
getPngWithFolder
(
)
;
$this
->thumbnailRepository->
create
(
[
[
'mediaId' =>
$media
->
getId
(
)
,
'width' => 987,
'height' => 987,
]
,
[
'mediaId' =>
$media
->
getId
(
)
,
'width' => 150,
$this
->urlGenerator =
$this
->
getContainer
(
)
->
get
(
UrlGeneratorInterface::
class
)
;
$this
->mediaRepository =
$this
->
getContainer
(
)
->
get
(
'media.repository'
)
;
$this
->thumbnailRepository =
$this
->
getContainer
(
)
->
get
(
'media_thumbnail.repository'
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$this
->thumbnailService =
$this
->
getContainer
(
)
->
get
(
ThumbnailService::
class
)
;
}
public
function
testThumbnailGeneration
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$media
=
$this
->
getPngWithFolder
(
)
;
$filePath
=
$this
->urlGenerator->
getRelativeMediaUrl
(
$media
)
;
$resource
=
fopen
(
__DIR__ . '/../fixtures/shopware-logo.png', 'rb'
)
;
\
assert
(
$resource
!== false
)
;
$this
->
getPublicFilesystem
(
)
->
writeStream
(
$filePath
,
$resource
)
;
$this
->thumbnailService->
updateThumbnails
(
$media
,
$this
->context,