How to use getContents method of controller class

Best Atoum code snippet using controller.getContents

ActionControllerTest.php

Source:ActionControllerTest.php Github

copy

Full Screen

...78 */79 public function defaultActionSpecifiedInRouteIsCalledAndResponseIsReturned()80 {81 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertesta');82 self::assertEquals('First action was called', $response->getBody()->getContents());83 self::assertEquals(200, $response->getStatusCode());84 }85 /**86 * Checks if a simple request is handled correctly if another than the default87 * action is specified.88 *89 * @test90 */91 public function actionSpecifiedInActionRequestIsCalledAndResponseIsReturned()92 {93 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertesta/second');94 self::assertEquals('Second action was called', $response->getBody()->getContents());95 self::assertEquals(200, $response->getStatusCode());96 }97 /**98 * Checks if query parameters are handled correctly and default arguments are99 * respected / overridden.100 *101 * @test102 */103 public function queryStringOfAGetRequestIsParsedAndPassedToActionAsArguments()104 {105 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertesta/third?secondArgument=bar&firstArgument=foo&third=baz');106 self::assertEquals('thirdAction-foo-bar-baz-default', $response->getBody()->getContents());107 }108 /**109 * @test110 */111 public function defaultTemplateIsResolvedAndUsedAccordingToConventions()112 {113 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertesta/fourth?emailAddress=example@neos.io');114 self::assertEquals('Fourth action <b>example@neos.io</b>', $response->getBody()->getContents());115 }116 /**117 * Bug #36913118 *119 * @test120 */121 public function argumentsOfPutRequestArePassedToAction()122 {123 $request = $this->serverRequestFactory->createServerRequest('PUT', new Uri('http://localhost/test/mvc/actioncontrollertesta/put?getArgument=getValue'));124 $request = $request125 ->withBody(ContentStream::fromContents('putArgument=first value'))126 ->withHeader('Content-Type', 'application/x-www-form-urlencoded')127 ->withHeader('Content-Length', 54);128 $response = $this->browser->sendRequest($request);129 self::assertEquals('putAction-first value-getValue', $response->getBody()->getContents());130 }131 /**132 * RFC 2616 / 10.4.5 (404 Not Found)133 *134 * @test135 */136 public function notFoundStatusIsReturnedIfASpecifiedObjectCantBeFound()137 {138 $request = new ServerRequest('GET', new Uri('http://localhost/test/mvc/actioncontrollertestc/non-existing-id'));139 $response = $this->browser->sendRequest($request);140 self::assertSame(404, $response->getStatusCode());141 }142 /**143 * RFC 2616 / 10.4.7 (406 Not Acceptable)144 *145 * @test146 */147 public function notAcceptableStatusIsReturnedIfMediaTypeDoesNotMatchSupportedMediaTypes()148 {149 $request = $this->serverRequestFactory->createServerRequest('GET', new Uri('http://localhost/test/mvc/actioncontrollertesta'))150 ->withHeader('Content-Type', 'application/xml')151 ->withHeader('Accept', 'application/xml')152 ->withBody(ContentStream::fromContents('<xml></xml>'));153 $response = $this->browser->sendRequest($request);154 self::assertSame(406, $response->getStatusCode());155 }156 /**157 * @test158 */159 public function ignoreValidationAnnotationsAreObservedForPost()160 {161 $arguments = [162 'argument' => [163 'name' => 'Foo',164 'emailAddress' => '-invalid-'165 ]166 ];167 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/showobjectargument', 'POST', $arguments);168 $expectedResult = '-invalid-';169 self::assertEquals($expectedResult, $response->getBody()->getContents());170 }171 /**172 * See http://forge.typo3.org/issues/37385173 * @test174 */175 public function ignoreValidationAnnotationIsObservedWithAndWithoutDollarSign()176 {177 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertesta/ignorevalidation?brokenArgument1=toolong&brokenArgument2=tooshort');178 self::assertEquals('action was called', $response->getBody()->getContents());179 }180 /**181 * @test182 */183 public function argumentsOfPutRequestWithJsonOrXmlTypeAreAlsoPassedToAction()184 {185 $request = $this->serverRequestFactory->createServerRequest('PUT', new Uri('http://localhost/test/mvc/actioncontrollertesta/put?getArgument=getValue'))186 ->withHeader('Content-Type', 'application/json')187 ->withHeader('Content-Length', 29)188 ->withBody(ContentStream::fromContents('{"putArgument":"first value"}'));189 $response = $this->browser->sendRequest($request);190 self::assertEquals('putAction-first value-getValue', $response->getBody()->getContents());191 }192 /**193 * @test194 */195 public function objectArgumentsAreValidatedByDefault()196 {197 $arguments = [198 'argument' => [199 'name' => 'Foo',200 'emailAddress' => '-invalid-'201 ]202 ];203 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/requiredobject', 'POST', $arguments);204 $expectedResult = 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->requiredObjectAction().' . PHP_EOL;205 self::assertEquals($expectedResult, $response->getBody()->getContents());206 }207 /**208 * @test209 */210 public function optionalObjectArgumentsAreValidatedByDefault()211 {212 $arguments = [213 'argument' => [214 'name' => 'Foo',215 'emailAddress' => '-invalid-'216 ]217 ];218 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/optionalobject', 'POST', $arguments);219 $expectedResult = 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->optionalObjectAction().' . PHP_EOL;220 self::assertEquals($expectedResult, $response->getBody()->getContents());221 }222 /**223 * @test224 */225 public function optionalObjectArgumentsCanBeOmitted()226 {227 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/optionalobject');228 $expectedResult = 'null';229 self::assertEquals($expectedResult, $response->getBody()->getContents());230 }231 /**232 * @test233 */234 public function optionalObjectArgumentsCanBeAnnotatedNullable()235 {236 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/optionalannotatedobject');237 $expectedResult = 'null';238 self::assertEquals($expectedResult, $response->getBody()->getContents());239 }240 /**241 * @test242 */243 public function notValidatedGroupObjectArgumentsAreNotValidated()244 {245 $arguments = [246 'argument' => [247 'name' => 'Foo',248 'emailAddress' => '-invalid-'249 ]250 ];251 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/notvalidatedgroupobject', 'POST', $arguments);252 $expectedResult = '-invalid-';253 self::assertEquals($expectedResult, $response->getBody()->getContents());254 }255 /**256 * @test257 */258 public function notValidatedGroupCollectionsAreNotValidated()259 {260 $arguments = [261 'argument' => [262 'name' => 'Foo',263 'collection' => [264 [265 'name' => 'Bar',266 'emailAddress' => '-invalid-'267 ]268 ]269 ]270 ];271 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/notvalidatedgroupcollection', 'POST', $arguments);272 $expectedResult = '-invalid-';273 self::assertEquals($expectedResult, $response->getBody()->getContents());274 }275 /**276 * @test277 */278 public function notValidatedGroupModelRelationIsNotValidated()279 {280 $arguments = [281 'argument' => [282 'name' => 'Foo',283 'emailAddress' => '-invalid-',284 'related' => [285 'name' => 'Bar',286 'emailAddress' => '-invalid-'287 ]288 ]289 ];290 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/notvalidatedgroupobject', 'POST', $arguments);291 $expectedResult = '-invalid-';292 self::assertEquals($expectedResult, $response->getBody()->getContents());293 }294 /**295 * @test296 */297 public function validatedGroupObjectArgumentsAreValidated()298 {299 $arguments = [300 'argument' => [301 'name' => 'Foo',302 'emailAddress' => '-invalid-'303 ]304 ];305 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/validatedgroupobject', 'POST', $arguments);306 $expectedResult = 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->validatedGroupObjectAction().' . PHP_EOL;307 self::assertEquals($expectedResult, $response->getBody()->getContents());308 }309 /**310 * @test311 */312 public function validatedGroupCollectionsAreValidated()313 {314 $arguments = [315 'argument' => [316 'name' => 'Foo',317 'collection' => [318 [319 'name' => 'Bar',320 'emailAddress' => '-invalid-'321 ]322 ]323 ]324 ];325 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/validatedgroupcollection', 'POST', $arguments);326 $expectedResult = 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->validatedGroupCollectionAction().' . PHP_EOL;327 self::assertEquals($expectedResult, $response->getBody()->getContents());328 }329 /**330 * @test331 */332 public function validatedGroupModelRelationIsValidated()333 {334 $arguments = [335 'argument' => [336 'name' => 'Foo',337 'related' => [338 'name' => 'Bar',339 'emailAddress' => '-invalid-'340 ]341 ]342 ];343 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/validatedgroupobject', 'POST', $arguments);344 $expectedResult = 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->validatedGroupObjectAction().' . PHP_EOL;345 self::assertEquals($expectedResult, $response->getBody()->getContents());346 }347 /**348 * Data provider for argumentTests()349 *350 * @return array351 */352 public function argumentTestsDataProvider()353 {354 $requiredArgumentExceptionText = 'Uncaught Exception in Flow #1298012500: Required argument "argument" is not set.';355 $data = [356 'required string ' => ['requiredString', 'some String', '\'some String\''],357 'required string - missing value' => ['requiredString', null, $requiredArgumentExceptionText],358 'optional string' => ['optionalString', '123', '\'123\''],359 'optional string - default' => ['optionalString', null, '\'default\''],360 'optional string - nullable' => ['optionalNullableString', null, 'NULL'],361 'required integer' => ['requiredInteger', '234', 234],362 'required integer - missing value' => ['requiredInteger', null, $requiredArgumentExceptionText],363 'required integer - mapping error' => ['requiredInteger', 'not an integer', 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->requiredIntegerAction().'],364 'required integer - empty value' => ['requiredInteger', '', 'NULL'],365 'optional integer' => ['optionalInteger', 456, 456],366 'optional integer - default value' => ['optionalInteger', null, 123],367 'optional integer - mapping error' => ['optionalInteger', 'not an integer', 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->optionalIntegerAction().'],368 'optional integer - empty value' => ['optionalInteger', '', 123],369 'optional integer - nullable' => ['optionalNullableInteger', null, 'NULL'],370 'required float' => ['requiredFloat', 34.56, 34.56],371 'required float - integer' => ['requiredFloat', 485, '485'],372 'required float - integer2' => ['requiredFloat', '888', '888'],373 'required float - missing value' => ['requiredFloat', null, $requiredArgumentExceptionText],374 'required float - mapping error' => ['requiredFloat', 'not a float', 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->requiredFloatAction().'],375 'required float - empty value' => ['requiredFloat', '', 'NULL'],376 'optional float' => ['optionalFloat', 78.90, 78.9],377 'optional float - default value' => ['optionalFloat', null, 112.34],378 'optional float - mapping error' => ['optionalFloat', 'not a float', 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->optionalFloatAction().'],379 'optional float - empty value' => ['optionalFloat', '', 112.34],380 'optional float - nullable' => ['optionalNullableFloat', null, 'NULL'],381 'required date' => ['requiredDate', ['date' => '1980-12-13', 'dateFormat' => 'Y-m-d'], '1980-12-13'],382 'required date string' => ['requiredDate', '1980-12-13T14:22:12+02:00', '1980-12-13'],383 'required date - missing value' => ['requiredDate', null, $requiredArgumentExceptionText],384 'required date - mapping error' => ['requiredDate', 'no date', 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->requiredDateAction().'],385 'optional date string' => ['optionalDate', '1980-12-13T14:22:12+02:00', '1980-12-13'],386 'optional date - default value' => ['optionalDate', null, 'null'],387 'optional date - mapping error' => ['optionalDate', 'no date', 'Validation failed while trying to call Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController->optionalDateAction().'],388 'optional date - missing value' => ['optionalDate', null, 'null'],389 'optional date - empty value' => ['optionalDate', '', 'null'],390 ];391 return $data;392 }393 /**394 * Tut Dinge.395 *396 * @param string $action397 * @param mixed $argument398 * @param string $expectedResult399 * @test400 * @dataProvider argumentTestsDataProvider401 */402 public function argumentTests($action, $argument, $expectedResult)403 {404 $arguments = [405 'argument' => $argument,406 ];407 $uri = str_replace('{@action}', strtolower($action), 'http://localhost/test/mvc/actioncontrollertestb/{@action}');408 $response = $this->browser->request($uri, 'POST', $arguments);409 self::assertTrue(strpos(trim($response->getBody()->getContents()), (string)$expectedResult) === 0, sprintf('The resulting string did not start with the expected string. Expected: "%s", Actual: "%s"', $expectedResult, $response->getBody()->getContents()));410 }411 /**412 * @test413 */414 public function requiredDateNullArgumentTest()415 {416 $arguments = [417 'argument' => '',418 ];419 $uri = str_replace('{@action}', 'requireddate', 'http://localhost/test/mvc/actioncontrollertestb/{@action}');420 $response = $this->browser->request($uri, 'POST', $arguments);421 if (PHP_MAJOR_VERSION < 8) {422 $expectedResult = 'Uncaught Exception in Flow Argument 1 passed to Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController_Original::requiredDateAction() must be an instance of DateTime, null given';423 } else {424 $expectedResult = 'Uncaught Exception in Flow Neos\Flow\Tests\Functional\Mvc\Fixtures\Controller\ActionControllerTestBController_Original::requiredDateAction(): Argument #1 ($argument) must be of type DateTime, null given';425 }426 self::assertTrue(strpos(trim($response->getBody()->getContents()), (string)$expectedResult) === 0, sprintf('The resulting string did not start with the expected string. Expected: "%s", Actual: "%s"', $expectedResult, $response->getBody()->getContents()));427 }428 /**429 * @test430 */431 public function wholeRequestBodyCanBeMapped()432 {433 $arguments = [434 'name' => 'Foo',435 'emailAddress' => 'foo@bar.org'436 ];437 $body = json_encode($arguments, JSON_PRETTY_PRINT);438 $this->browser->addAutomaticRequestHeader('Content-Type', 'application/json');439 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/mappedrequestbody', 'POST', [], [], [], $body);440 $expectedResult = 'Foo-foo@bar.org';441 self::assertEquals($expectedResult, $response->getBody()->getContents());442 }443 /**444 * @test445 */446 public function wholeRequestBodyCanBeMappedWithoutAnnotation()447 {448 $arguments = [449 'name' => 'Foo',450 'emailAddress' => 'foo@bar.org'451 ];452 $body = json_encode($arguments, JSON_PRETTY_PRINT);453 $this->browser->addAutomaticRequestHeader('Content-Type', 'application/json');454 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertestb/mappedrequestbodywithoutannotation', 'POST', [], [], [], $body);455 $expectedResult = 'Foo-foo@bar.org';456 self::assertEquals($expectedResult, $response->getBody()->getContents());457 }458 /**459 * @test460 */461 public function trustedPropertiesConfigurationDoesNotIgnoreWildcardConfigurationInController()462 {463 $entity = new TestEntity();464 $entity->setName('Foo');465 $this->persistenceManager->add($entity);466 $identifier = $this->persistenceManager->getIdentifierByObject($entity);467 $trustedPropertiesService = new MvcPropertyMappingConfigurationService();468 $trustedProperties = $trustedPropertiesService->generateTrustedPropertiesToken(['entity[__identity]', 'entity[subEntities][0][content]', 'entity[subEntities][0][date]', 'entity[subEntities][1][content]', 'entity[subEntities][1][date]']);469 $form = [470 'entity' => [471 '__identity' => $identifier,472 'subEntities' => [473 [474 'content' => 'Bar',475 'date' => '1.1.2016'476 ],477 [478 'content' => 'Baz',479 'date' => '30.12.2016'480 ]481 ]482 ],483 '__trustedProperties' => $trustedProperties484 ];485 $request = $this->serverRequestFactory->createServerRequest('POST', new Uri('http://localhost/test/mvc/actioncontrollertestc/' . $identifier . '/update'))486 ->withParsedBody($form);487 $response = $this->browser->sendRequest($request);488 self::assertSame('Entity "Foo" updated', $response->getBody()->getContents());489 }490 /**491 * @test492 */493 public function flashMessagesGetRenderedAfterRedirect()494 {495 $request = $this->serverRequestFactory->createServerRequest('GET', new Uri('http://localhost/test/mvc/actioncontrollertest/redirectWithFlashMessage'));496 $response = $this->browser->sendRequest($request);497 $sessionCookies = array_map(static function ($cookie) {498 return Cookie::createFromRawSetCookieHeader($cookie);499 }, $response->getHeader('Set-Cookie'));500 self::assertNotEmpty($sessionCookies);501 $redirect = $response->getHeaderLine('Location');502 self::assertNotEmpty($redirect);503 $this->objectManager->forgetInstance(StandardController::class);504 $cookies = array_reduce($sessionCookies, static function ($out, $cookie) {505 $out[$cookie->getName()] = $cookie->getValue();506 return $out;507 }, []);508 $redirectRequest = $this->serverRequestFactory->createServerRequest('GET', new Uri($redirect))509 ->withCookieParams($cookies);510 $redirectResponse = $this->browser->sendRequest($redirectRequest);511 $expected = json_encode(['Redirect FlashMessage']);512 self::assertSame($expected, $redirectResponse->getBody()->getContents());513 }514 /**515 * @test516 */517 public function nonstandardStatusCodeIsReturnedWithRedirect()518 {519 $this->browser->setFollowRedirects(false);520 $response = $this->browser->request('http://localhost/test/mvc/actioncontrollertesta/redirect');521 self::assertSame(302, $response->getStatusCode());522 self::assertSame('http://some.uri', $response->getHeaderLine('Location'));523 }524}...

Full Screen

Full Screen

PromotionControllerTest.php

Source:PromotionControllerTest.php Github

copy

Full Screen

...17 {18 $entityManagerProphecy = $this->prophesize(EntityManagerInterface::class);19 $entityManager = $entityManagerProphecy->reveal();20 $requestBodyProphecy = $this->prophesize(StreamInterface::class);21 $requestBodyProphecy->getContents()->willReturn('{"discount_code": "testCode", "discount_name": "testName","discount_type": "testType", "discount_start_date": "testStartDate", "discount_end_date": "testEndDate"}');22 $requestBody = $requestBodyProphecy->reveal();23 $requestProphecy = $this->prophesize(ServerRequestInterface::class);24 $requestProphecy->getBody()->willReturn($requestBody);25 $request = $requestProphecy->reveal();26 $expectedData = new JsonResponse(['message' => 'Error while creating discount!',27 'data' => [28 'discount_value' => 'This value is required.',29 ],30 ], 400);31 $promotionController = new PromotionController($entityManager, 'Asia/Singapore');32 $actualData = $promotionController->createAction($request);33 $this->assertEquals($expectedData->getStatusCode(), $actualData->getStatusCode());34 $this->assertEquals($expectedData->getBody()->getContents(), $actualData->getBody()->getContents());35 }36 public function testCreateActionWithExistingPromotion()37 {38 $promotionProphecy = $this->prophesize(Promotion::class);39 $promotion = $promotionProphecy->reveal();40 $promotionRepositoryProphecy = $this->prophesize(ObjectRepository::class);41 $promotionRepositoryProphecy->findOneBy(['promotionNumber' => 'testCode', 'isBasedOn' => null])->willReturn($promotion);42 $promotionRepository = $promotionRepositoryProphecy->reveal();43 $entityManagerProphecy = $this->prophesize(EntityManagerInterface::class);44 $entityManagerProphecy->getRepository(Promotion::class)->willReturn($promotionRepository);45 $entityManager = $entityManagerProphecy->reveal();46 $requestBodyProphecy = $this->prophesize(StreamInterface::class);47 $requestBodyProphecy->getContents()->willReturn('{"discount_code": "testCode", "discount_name": "testName","discount_type": "testType", "discount_start_date": "testStartDate", "discount_end_date": "testEndDate", "discount_value": 123}');48 $requestBody = $requestBodyProphecy->reveal();49 $requestProphecy = $this->prophesize(ServerRequestInterface::class);50 $requestProphecy->getBody()->willReturn($requestBody);51 $request = $requestProphecy->reveal();52 $expectedData = new JsonResponse(['message' => 'Error while creating discount!',53 'data' => [54 'discount_code' => 'Discount code has already been used.',55 ],56 ], 400);57 $promotionController = new PromotionController($entityManager, 'Asia/Singapore');58 $actualData = $promotionController->createAction($request);59 $this->assertEquals($expectedData->getStatusCode(), $actualData->getStatusCode());60 $this->assertEquals($expectedData->getBody()->getContents(), $actualData->getBody()->getContents());61 }62 public function testCreateActionWithNewCategoryWithPercentageAsDiscountType()63 {64 $promotionRepositoryProphecy = $this->prophesize(ObjectRepository::class);65 $promotionRepositoryProphecy->findOneBy(['promotionNumber' => 'testCode', 'isBasedOn' => null])->willReturn(null);66 $promotionRepository = $promotionRepositoryProphecy->reveal();67 $promotionCategoryRepositoryProphecy = $this->prophesize(ObjectRepository::class);68 $promotionCategoryRepositoryProphecy->findOneBy(['name' => 'Percentage'])->willReturn(null);69 $promotionCategoryRepository = $promotionCategoryRepositoryProphecy->reveal();70 $entityManagerProphecy = $this->prophesize(EntityManagerInterface::class);71 $entityManagerProphecy->getRepository(Promotion::class)->willReturn($promotionRepository);72 $entityManagerProphecy->getRepository(PromotionCategory::class)->willReturn($promotionCategoryRepository);73 $entityManager = $entityManagerProphecy->reveal();74 $requestBodyProphecy = $this->prophesize(StreamInterface::class);75 $requestBodyProphecy->getContents()->willReturn('{"discount_code": "testCode", "discount_name": "testName","discount_type": "Percentage", "discount_start_date": "testStartDate", "discount_end_date": "testEndDate", "discount_value": 30, "max_discount_value": 20, "number_of_discount":1 }');76 $requestBody = $requestBodyProphecy->reveal();77 $requestProphecy = $this->prophesize(ServerRequestInterface::class);78 $requestProphecy->getBody()->willReturn($requestBody);79 $request = $requestProphecy->reveal();80 $expectedData = new JsonResponse(['message' => 'Error while creating discount code!',81 'data' => [82 'discount_start_date' => 'Invalid date format.',83 'discount_end_date' => 'Invalid date format.',84 ],85 ], 400);86 $promotionController = new PromotionController($entityManager, 'Asia/Singapore');87 $actualData = $promotionController->createAction($request);88 $this->assertEquals($expectedData->getStatusCode(), $actualData->getStatusCode());89 $this->assertEquals($expectedData->getBody()->getContents(), $actualData->getBody()->getContents());90 }91 public function testCreateActionWithNewCategoryWithPercentageAsDiscountTypeandWithoutMaxDiscountValue()92 {93 $promotionRepositoryProphecy = $this->prophesize(ObjectRepository::class);94 $promotionRepositoryProphecy->findOneBy(['promotionNumber' => 'testCode', 'isBasedOn' => null])->willReturn(null);95 $promotionRepository = $promotionRepositoryProphecy->reveal();96 $promotionCategoryRepositoryProphecy = $this->prophesize(ObjectRepository::class);97 $promotionCategoryRepositoryProphecy->findOneBy(['name' => 'Percentage'])->willReturn(null);98 $promotionCategoryRepository = $promotionCategoryRepositoryProphecy->reveal();99 $entityManagerProphecy = $this->prophesize(EntityManagerInterface::class);100 $entityManagerProphecy->getRepository(Promotion::class)->willReturn($promotionRepository);101 $entityManagerProphecy->getRepository(PromotionCategory::class)->willReturn($promotionCategoryRepository);102 $entityManager = $entityManagerProphecy->reveal();103 $requestBodyProphecy = $this->prophesize(StreamInterface::class);104 $requestBodyProphecy->getContents()->willReturn('{"discount_code": "testCode", "discount_name": "testName","discount_type": "Percentage", "discount_start_date": "testStartDate", "discount_end_date": "testEndDate", "discount_value": 30, "number_of_discount":1}');105 $requestBody = $requestBodyProphecy->reveal();106 $requestProphecy = $this->prophesize(ServerRequestInterface::class);107 $requestProphecy->getBody()->willReturn($requestBody);108 $request = $requestProphecy->reveal();109 $expectedData = new JsonResponse(['message' => 'Error while creating discount code!',110 'data' => [111 'discount_start_date' => 'Invalid date format.',112 'discount_end_date' => 'Invalid date format.',113 ],114 ], 400);115 $promotionController = new PromotionController($entityManager, 'Asia/Singapore');116 $actualData = $promotionController->createAction($request);117 $this->assertEquals($expectedData->getStatusCode(), $actualData->getStatusCode());118 $this->assertEquals($expectedData->getBody()->getContents(), $actualData->getBody()->getContents());119 }120 public function testCreateActionWithNewCategoryWithFixedAmountAsDiscountType()121 {122 $promotionRepositoryProphecy = $this->prophesize(ObjectRepository::class);123 $promotionRepositoryProphecy->findOneBy(['promotionNumber' => 'testCode', 'isBasedOn' => null])->willReturn(null);124 $promotionRepository = $promotionRepositoryProphecy->reveal();125 $promotionCategoryRepositoryProphecy = $this->prophesize(ObjectRepository::class);126 $promotionCategoryRepositoryProphecy->findOneBy(['name' => 'Fixed Amount'])->willReturn(null);127 $promotionCategoryRepository = $promotionCategoryRepositoryProphecy->reveal();128 $entityManagerProphecy = $this->prophesize(EntityManagerInterface::class);129 $entityManagerProphecy->getRepository(Promotion::class)->willReturn($promotionRepository);130 $entityManagerProphecy->getRepository(PromotionCategory::class)->willReturn($promotionCategoryRepository);131 $entityManager = $entityManagerProphecy->reveal();132 $requestBodyProphecy = $this->prophesize(StreamInterface::class);133 $requestBodyProphecy->getContents()->willReturn('{"discount_code": "testCode", "discount_name": "testName","discount_type": "Fixed Amount", "discount_start_date": "testStartDate", "discount_end_date": "testEndDate", "min_discount_month": 1, "discount_value": 30}');134 $requestBody = $requestBodyProphecy->reveal();135 $requestProphecy = $this->prophesize(ServerRequestInterface::class);136 $requestProphecy->getBody()->willReturn($requestBody);137 $request = $requestProphecy->reveal();138 $expectedData = new JsonResponse(['message' => 'Error while creating discount code!',139 'data' => [140 'discount_start_date' => 'Invalid date format.',141 'discount_end_date' => 'Invalid date format.',142 ],143 ], 400);144 $promotionController = new PromotionController($entityManager, 'Asia/Singapore');145 $actualData = $promotionController->createAction($request);146 $this->assertEquals($expectedData->getStatusCode(), $actualData->getStatusCode());147 $this->assertEquals($expectedData->getBody()->getContents(), $actualData->getBody()->getContents());148 }149 public function testUpdateActionWithoutExistingPromotion()150 {151 $promotionRepositoryProphecy = $this->prophesize(ObjectRepository::class);152 $promotionRepositoryProphecy->findOneBy(['promotionNumber' => 'testCode', 'isBasedOn' => null])->willReturn(null);153 $promotionRepository = $promotionRepositoryProphecy->reveal();154 $entityManagerProphecy = $this->prophesize(EntityManagerInterface::class);155 $entityManagerProphecy->getRepository(Promotion::class)->willReturn($promotionRepository);156 $entityManager = $entityManagerProphecy->reveal();157 $requestBodyProphecy = $this->prophesize(StreamInterface::class);158 $requestBodyProphecy->getContents()->willReturn('{"discount_code": "testCode", "discount_name": "testName","discount_type": "testType", "discount_start_date": "testStartDate", "discount_end_date": "testEndDate", "min_discount_month": "1"}');159 $requestBody = $requestBodyProphecy->reveal();160 $requestProphecy = $this->prophesize(ServerRequestInterface::class);161 $requestProphecy->getBody()->willReturn($requestBody);162 $request = $requestProphecy->reveal();163 $expectedData = new JsonResponse(['message' => 'Discount code testCode not found.'], 404);164 $promotionController = new PromotionController($entityManager, 'Asia/Singapore');165 $actualData = $promotionController->updateAction($request, 'testCode');166 $this->assertEquals($expectedData->getStatusCode(), $actualData->getStatusCode());167 $this->assertEquals($expectedData->getBody()->getContents(), $actualData->getBody()->getContents());168 }169 public function testUpdateActionWithInvalidDateFormat()170 {171 $promotionProphecy = $this->prophesize(Promotion::class);172 $promotionProphecy->setName('testName')->shouldBeCalled();173 $promotionProphecy->setCurrency('SGD')->shouldBeCalled();174 $promotionProphecy->setAmount(new QuantitativeValue('30', null, null, null))->shouldBeCalled();175 $promotionProphecy->setRecurringDuration(new QuantitativeValue('1', null, null, 'MON'))->shouldBeCalled();176 $promotion = $promotionProphecy->reveal();177 $promotionRepositoryProphecy = $this->prophesize(ObjectRepository::class);178 $promotionRepositoryProphecy->findOneBy(['promotionNumber' => 'testCode', 'isBasedOn' => null])->willReturn($promotion);179 $promotionRepository = $promotionRepositoryProphecy->reveal();180 $entityManagerProphecy = $this->prophesize(EntityManagerInterface::class);181 $entityManagerProphecy->getRepository(Promotion::class)->willReturn($promotionRepository);182 $entityManager = $entityManagerProphecy->reveal();183 $requestBodyProphecy = $this->prophesize(StreamInterface::class);184 $requestBodyProphecy->getContents()->willReturn('{"discount_code": "testCode", "discount_name": "testName","discount_type": "Fixed Amount", "discount_start_date": "testStartDate", "discount_end_date": "testEndDate", "number_of_discount":1, "discount_value": 30}');185 $requestBody = $requestBodyProphecy->reveal();186 $requestProphecy = $this->prophesize(ServerRequestInterface::class);187 $requestProphecy->getBody()->willReturn($requestBody);188 $request = $requestProphecy->reveal();189 $expectedData = new JsonResponse(['message' => 'Error while creating discount code!',190 'data' => [191 'discount_start_date' => 'Invalid date format.',192 'discount_end_date' => 'Invalid date format.',193 ],194 ], 400);195 $promotionController = new PromotionController($entityManager, 'Asia/Singapore');196 $actualData = $promotionController->updateAction($request, 'testCode');197 $this->assertEquals($expectedData->getStatusCode(), $actualData->getStatusCode());198 $this->assertEquals($expectedData->getBody()->getContents(), $actualData->getBody()->getContents());199 }200}...

Full Screen

Full Screen

DomainController.php

Source:DomainController.php Github

copy

Full Screen

...36 $title = $this->title ;37 $client = new \GuzzleHttp\Client();38 $url = url('').'/api/domain?api_token='.Auth()->User()->api_token ;39 $res = $client->get($url);40 $json = json_decode($res->getBody()->getContents(), true);41 if (!isset($json['result'])) {42 $json['errors'] = $res->getBody()->getContents() ;43 return redirect('error')44 ->withError($json['errors']);45 }46 if ($json['result']==false) {47 return redirect('error')48 ->withError($json['errors']);49 }50 $user = $json['response']['user'] ;51 //-- ถ้า มีข้อมูล domain ล่าสุดให้ แล้ว approve เข้า dashboard ของ domain นั้นๆเลย52 53 if ($user['approve_domain']==1) {54 return redirect(Auth()->User()->getDomainName().'/dashboard');55 }56 //--- version 0.1 หลังจาก auto join ให้เด้งไปหน้ารอ approve57 return redirect(Auth()->User()->getDomainName().'/dashboard');58 $domains = $json['response']['domain'] ;59 return view($this->view.'.index', compact('domains', 'title'));60 }61 public function listDomain()62 {63 $title = $this->title ;64 $client = new \GuzzleHttp\Client();65 $url = url('').'/api/domain?api_token='.Auth()->User()->api_token ;66 $res = $client->get($url);67 $json = json_decode($res->getBody()->getContents(), true);68 if (!isset($json['result'])) {69 $json['errors'] = $res->getBody()->getContents() ;70 return redirect('error')71 ->withError($json['errors']);72 }73 if ($json['result']==false) {74 return redirect('error')75 ->withError($json['errors']);76 }77 78 79 $lists = $json['response']['domain'] ;80 return view($this->view.'.list', compact('lists', 'title'));81 }82 public function create()83 {84 $title = $this->title ;85 $route = $this->route;86 $units = Domain::unitslist();87 return view($this->view.'.create', compact('title', 'route', 'units'));88 }89 public function store(Request $request)90 {91 $post = $request->all();92 $client = new \GuzzleHttp\Client();93 $url = url('').'/api/domain?api_token='.Auth()->User()->api_token ;94 $response = $client->post($url, ['form_params'=>$post]);95 $json = json_decode($response->getBody()->getContents(), true);96 if (!isset($json['result'])) {97 $json['errors'] = $response->getBody()->getContents() ;98 return redirect('error')99 ->withError($json['errors']);100 }101 if ($json['result']=="false") {102 return redirect('error')103 ->withError($json['errors']);104 }105 return redirect($json['response']['domain_name'].'/dashboard')->with('success', 'สร้างโครงการ สำเร็จ');106 }107 public function join()108 {109 $title = $this->title ;110 $route = $this->route;111 $domains = [];112 $client = new \GuzzleHttp\Client();113 $url = url('').'/api/domain/list?api_token='.Auth()->User()->api_token ;114 $response = $client->get($url);115 $json = json_decode($response->getBody()->getContents(), true);116 if ($json['result']=="true") {117 $domains = $json['response']['domain'] ;118 }119 return view($this->view.'.join', compact('title', 'route', 'domains'));120 }121 public function search(Request $request)122 {123 $title = $this->title ;124 $route = $this->route;125 $domains = [];126 $client = new \GuzzleHttp\Client();127 $url = url('').'/api/domain/search?api_token='.Auth()->User()->api_token ;128 $response = $client->post($url, ['form_params'=>$request->all()]);129 $json = json_decode($response->getBody()->getContents(), true);130 if ($json['result']=="true") {131 $domains = $json['response'] ;132 }133 return $domains;134 }135 public function joinStore(Request $request)136 {137 $client = new \GuzzleHttp\Client();138 $url = url('').'/api/domain/join?api_token='.Auth()->User()->api_token ;139 $response = $client->post($url, ['form_params'=>$request->all()]);140 $json = json_decode($response->getBody()->getContents(), true);141 if (!isset($json['result'])) {142 $json['errors'] = $response->getBody()->getContents() ;143 return redirect('error')144 ->withError($json['errors']);145 }146 if ($json['result']=="false") {147 return redirect('error')148 ->withError($json['errors']);149 }150 if ($json['response']['approve']) {151 return redirect($json['response']['domain_id'].'dashboard')->with('success', 'เข้าร่วมโครงการ สำเร็จ');152 }153 return redirect('domain/join')->with('success', 'เข้าร่วมโครงการ สำเร็จ');154 }155}...

Full Screen

Full Screen

getContents

Using AI Code Generation

copy

Full Screen

1$controller = new controller();2$result = $controller->getContents();3echo $result;4$controller = new controller();5$result = $controller->getContents();6echo $result;7$controller = new controller();8$result = $controller->getContents();9echo $result;10$controller = new controller();11$result = $controller->getContents();12echo $result;13$controller = new controller();14$result = $controller->getContents();15echo $result;16$controller = new controller();17$result = $controller->getContents();18echo $result;19$controller = new controller();20$result = $controller->getContents();21echo $result;22$controller = new controller();23$result = $controller->getContents();24echo $result;25$controller = new controller();26$result = $controller->getContents();27echo $result;28$controller = new controller();29$result = $controller->getContents();30echo $result;31{32 public function getContents()33 {34 $file = fopen('test.txt', 'r');35 $contents = fread($file, filesize('test.txt'));36 fclose($file);37 return $contents;38 }39}40$controller = new controller();41$result = $controller->getContents();42echo $result;

Full Screen

Full Screen

getContents

Using AI Code Generation

copy

Full Screen

1$controller = new Controller();2$controller->getContents();3$controller = new Controller();4$controller->getContents();5$controller = new Controller();6$controller->getContents();7$controller = new Controller();8$controller->getContents();9$controller = new Controller();10$controller->getContents();11$controller = new Controller();12$controller->getContents();13$controller = new Controller();14$controller->getContents();15$controller = new Controller();16$controller->getContents();17$controller = new Controller();18$controller->getContents();19$controller = new Controller();20$controller->getContents();21$controller = new Controller();22$controller->getContents();23$controller = new Controller();24$controller->getContents();25$controller = new Controller();

Full Screen

Full Screen

getContents

Using AI Code Generation

copy

Full Screen

1require_once('controller.php');2$controller = new Controller();3$controller->getContents();4require_once('controller.php');5$controller = new Controller();6$controller->getContents();7require_once('controller.php');8$controller = new Controller();9$controller->getContents();10{11 public function getContents()12 {13 }14}15foreach (glob("*.php") as $filename)16{17 include $filename;18}19foreach (glob("*.php") as $filename)20{21 if ($filename !== 'controller.php') {22 include $filename;23 }24}

Full Screen

Full Screen

getContents

Using AI Code Generation

copy

Full Screen

1$contents = Controller::getContents("file.txt");2echo $contents;3$contents = Controller::getContents("file.txt");4echo $contents;5$contents = Controller::getContents("file.txt");6echo $contents;7$contents = Controller::getContents("file.txt");8echo $contents;9$contents = Controller::getContents("file.txt");10echo $contents;11$contents = Controller::getContents("file.txt");12echo $contents;13$contents = Controller::getContents("file.txt");14echo $contents;15$contents = Controller::getContents("file.txt");16echo $contents;17$contents = Controller::getContents("file.txt");18echo $contents;19$contents = Controller::getContents("file.txt");20echo $contents;21$contents = Controller::getContents("file.txt");22echo $contents;23$contents = Controller::getContents("file.txt");24echo $contents;25$contents = Controller::getContents("file.txt");26echo $contents;

Full Screen

Full Screen

getContents

Using AI Code Generation

copy

Full Screen

1include_once("controller.php");2$controller = new controller;3$controller->getContents();4include_once("controller.php");5$controller = new controller;6$controller->getContents("folder1/2.txt");7include_once("controller.php");8$controller = new controller;9$controller->getContents("folder1/2.txt");10include_once("controller.php");11$controller = new controller;

Full Screen

Full Screen

getContents

Using AI Code Generation

copy

Full Screen

1$controller->getContents();2{3 public function getContents($viewName)4 {5 }6}7$view = new View();8$viewContents = $view->getContents($viewName);9echo $viewContents;10{11 public function getData($tableName)12 {13 }14}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Atoum automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used method in controller

Trigger getContents code on LambdaTest Cloud Grid

Execute automation tests with getContents on a cloud-based Grid of 3000+ real browsers and operating systems for both web and mobile applications.

Test now for Free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful