How to use testClass method of reader class

Best Atoum code snippet using reader.testClass

ConvenienceTest.php

Source:ConvenienceTest.php Github

copy

Full Screen

1<?php2/**3 * Copyright (c) Tony Bogdanov <support@tonybogdanov.com>4 *5 * For the full copyright and license information, please view the LICENSE6 * file that was distributed with this source code.7 */8namespace TonyBogdanov\MockableAnnotations\Test\Reader\MockableReader;9use Doctrine\Common\Annotations\AnnotationException;10use Doctrine\Common\Annotations\AnnotationReader;11use TonyBogdanov\MockableAnnotations\MockProvider\ClassMockProvider;12use TonyBogdanov\MockableAnnotations\MockProvider\ClassMockProvider\Filter\ClassNameFilter;13use TonyBogdanov\MockableAnnotations\MockProvider\ClassMockProvider\Strategy\MergeStrategy as ClassMergeStrategy;14use TonyBogdanov\MockableAnnotations\MockProvider\ClassMockProvider\Strategy\OverrideStrategy as ClassOverrideStrategy;15use TonyBogdanov\MockableAnnotations\MockProvider\MethodMockProvider;16use TonyBogdanov\MockableAnnotations\MockProvider\MethodMockProvider\Filter\MethodNameFilter;17use TonyBogdanov\MockableAnnotations\MockProvider\PropertyMockProvider\Filter\PropertyNameFilter;18use TonyBogdanov\MockableAnnotations\MockProvider\MethodMockProvider\Strategy\MergeStrategy as MethodMergeStrategy;19use TonyBogdanov\MockableAnnotations\MockProvider\MethodMockProvider\Strategy\OverrideStrategy as MethodOverrideStrategy;20use TonyBogdanov\MockableAnnotations\MockProvider\PropertyMockProvider;21use TonyBogdanov\MockableAnnotations\MockProvider\PropertyMockProvider\Strategy\MergeStrategy as PropertyMergeStrategy;22use TonyBogdanov\MockableAnnotations\MockProvider\PropertyMockProvider\Strategy\OverrideStrategy as PropertyOverrideStrategy;23use TonyBogdanov\MockableAnnotations\Reader\MockableReader;24use TonyBogdanov\MockableAnnotations\Test\AbstractTestCase;25use TonyBogdanov\MockableAnnotations\Test\Helper\AliasClass;26use TonyBogdanov\MockableAnnotations\Test\Helper\Annotation\TestClassAnnotation;27use TonyBogdanov\MockableAnnotations\Test\Helper\Annotation\TestMethodAnnotation;28use TonyBogdanov\MockableAnnotations\Test\Helper\Annotation\TestPropertyAnnotation;29use TonyBogdanov\MockableAnnotations\Test\Helper\TestClass;30use ReflectionClass;31use ReflectionProperty;32use ReflectionMethod;33use ReflectionException;34/**35 * Class ConvenienceTest36 *37 * @package TonyBogdanov\MockableAnnotations\Test\Reader\MockableReader38 */39class ConvenienceTest extends AbstractTestCase {40 public function provider(): array {41 $classAnnotation = new TestClassAnnotation();42 $classAnnotation->value = 'test';43 $methodAnnotation = new TestMethodAnnotation();44 $methodAnnotation->value = 'test';45 $propertyAnnotation = new TestPropertyAnnotation();46 $propertyAnnotation->value = 'test';47 $aliasClassAnnotation = new TestClassAnnotation();48 $aliasClassAnnotation->value = 'aliased';49 $aliasMethodAnnotation = new TestMethodAnnotation();50 $aliasMethodAnnotation->value = 'aliased';51 $aliasPropertyAnnotation = new TestPropertyAnnotation();52 $aliasPropertyAnnotation->value = 'aliased';53 return [ [54 'override',55 'Class',56 [ TestClass::class, [ $classAnnotation ] ],57 new ClassMockProvider(58 [ $classAnnotation ],59 new ClassOverrideStrategy(),60 new ClassNameFilter( TestClass::class ),61 12362 )63 ], [64 'overrideAlias',65 'Class',66 [ TestClass::class, AliasClass::class ],67 new ClassMockProvider(68 [ $aliasClassAnnotation ],69 new ClassOverrideStrategy(),70 new ClassNameFilter( TestClass::class ),71 12372 )73 ], [74 'merge',75 'Class',76 [ TestClass::class, [ $classAnnotation ] ],77 new ClassMockProvider(78 [ $classAnnotation ],79 new ClassMergeStrategy(),80 new ClassNameFilter( TestClass::class ),81 12382 )83 ], [84 'mergeAlias',85 'Class',86 [ TestClass::class, AliasClass::class ],87 new ClassMockProvider(88 [ $aliasClassAnnotation ],89 new ClassMergeStrategy(),90 new ClassNameFilter( TestClass::class ),91 12392 )93 ], [94 'override',95 'Method',96 [ TestClass::class, 'method', [ $methodAnnotation ] ],97 new MethodMockProvider(98 [ $methodAnnotation ],99 new MethodOverrideStrategy(),100 new MethodNameFilter( TestClass::class, 'method' ),101 123102 )103 ], [104 'overrideAlias',105 'Method',106 [ TestClass::class, 'method', AliasClass::class, 'method' ],107 new MethodMockProvider(108 [ $aliasMethodAnnotation ],109 new MethodOverrideStrategy(),110 new MethodNameFilter( TestClass::class, 'method' ),111 123112 )113 ], [114 'merge',115 'Method',116 [ TestClass::class, 'method', [ $methodAnnotation ] ],117 new MethodMockProvider(118 [ $methodAnnotation ],119 new MethodMergeStrategy(),120 new MethodNameFilter( TestClass::class, 'method' ),121 123122 )123 ], [124 'mergeAlias',125 'Method',126 [ TestClass::class, 'method', AliasClass::class, 'method' ],127 new MethodMockProvider(128 [ $aliasMethodAnnotation ],129 new MethodMergeStrategy(),130 new MethodNameFilter( TestClass::class, 'method' ),131 123132 )133 ], [134 'override',135 'Property',136 [ TestClass::class, 'property', [ $propertyAnnotation ] ],137 new PropertyMockProvider(138 [ $propertyAnnotation ],139 new PropertyOverrideStrategy(),140 new PropertyNameFilter( TestClass::class, 'property' ),141 123142 )143 ], [144 'overrideAlias',145 'Property',146 [ TestClass::class, 'property', AliasClass::class, 'property' ],147 new PropertyMockProvider(148 [ $aliasPropertyAnnotation ],149 new PropertyOverrideStrategy(),150 new PropertyNameFilter( TestClass::class, 'property' ),151 123152 )153 ], [154 'merge',155 'Property',156 [ TestClass::class, 'property', [ $propertyAnnotation ] ],157 new PropertyMockProvider(158 [ $propertyAnnotation ],159 new PropertyMergeStrategy(),160 new PropertyNameFilter( TestClass::class, 'property' ),161 123162 )163 ], [164 'mergeAlias',165 'Property',166 [ TestClass::class, 'property', AliasClass::class, 'property' ],167 new PropertyMockProvider(168 [ $aliasPropertyAnnotation ],169 new PropertyMergeStrategy(),170 new PropertyNameFilter( TestClass::class, 'property' ),171 123172 )173 ] ];174 }175 /**176 * @dataProvider provider177 *178 * @param string $strategy179 * @param string $type180 * @param array $args181 * @param object $expectedProvider182 *183 * @throws AnnotationException184 */185 public function testConvenience(186 string $strategy,187 string $type,188 array $args,189 object $expectedProvider190 ) {191 $reader = new MockableReader( new AnnotationReader() );192 $method = $strategy . $type . 'Annotations';193 $getter = 'get' . $type . 'MockProviders';194 $this->assertSame( $reader, call_user_func_array( [ $reader, $method ], array_merge( $args, [ 123 ] ) ) );195 $this->assertEquals( [ $expectedProvider ], call_user_func( [ $reader, $getter ] ) );196 }197 /**198 * @throws AnnotationException199 * @throws ReflectionException200 */201 public function testOverrideAlias() {202 $reader = new MockableReader( new AnnotationReader() );203 $reader->overrideAliasAnnotations( TestClass::class, AliasClass::class );204 $classAnnotations = $reader->getClassAnnotations( new ReflectionClass( TestClass::class ) );205 $this->assertCount( 1, $classAnnotations );206 $this->assertInstanceOf( TestClassAnnotation::class, $classAnnotations[0] );207 $this->assertSame( 'aliased', $classAnnotations[0]->value );208 $methodAnnotations = $reader->getMethodAnnotations( new ReflectionMethod( TestClass::class, 'method' ) );209 $this->assertCount( 1, $methodAnnotations );210 $this->assertInstanceOf( TestMethodAnnotation::class, $methodAnnotations[0] );211 $this->assertSame( 'aliased', $methodAnnotations[0]->value );212 $propAnnotations = $reader->getPropertyAnnotations( new ReflectionProperty( TestClass::class, 'property' ) );213 $this->assertCount( 1, $propAnnotations );214 $this->assertInstanceOf( TestPropertyAnnotation::class, $propAnnotations[0] );215 $this->assertSame( 'aliased', $propAnnotations[0]->value );216 }217 /**218 * @throws AnnotationException219 * @throws ReflectionException220 */221 public function testMergeAlias() {222 $reader = new MockableReader( new AnnotationReader() );223 $reader->mergeAliasAnnotations( TestClass::class, AliasClass::class );224 $classAnnotations = $reader->getClassAnnotations( new ReflectionClass( TestClass::class ) );225 $this->assertCount( 2, $classAnnotations );226 $this->assertInstanceOf( TestClassAnnotation::class, $classAnnotations[0] );227 $this->assertInstanceOf( TestClassAnnotation::class, $classAnnotations[1] );228 $this->assertSame( 'declared', $classAnnotations[0]->value );229 $this->assertSame( 'aliased', $classAnnotations[1]->value );230 $methodAnnotations = $reader->getMethodAnnotations( new ReflectionMethod( TestClass::class, 'method' ) );231 $this->assertCount( 2, $methodAnnotations );232 $this->assertInstanceOf( TestMethodAnnotation::class, $methodAnnotations[0] );233 $this->assertInstanceOf( TestMethodAnnotation::class, $methodAnnotations[1] );234 $this->assertSame( 'declared', $methodAnnotations[0]->value );235 $this->assertSame( 'aliased', $methodAnnotations[1]->value );236 $propAnnotations = $reader->getPropertyAnnotations( new ReflectionProperty( TestClass::class, 'property' ) );237 $this->assertCount( 2, $propAnnotations );238 $this->assertInstanceOf( TestPropertyAnnotation::class, $propAnnotations[0] );239 $this->assertInstanceOf( TestPropertyAnnotation::class, $propAnnotations[1] );240 $this->assertSame( 'declared', $propAnnotations[0]->value );241 $this->assertSame( 'aliased', $propAnnotations[1]->value );242 }243}...

Full Screen

Full Screen

AnnotationsLoaderTest.php

Source:AnnotationsLoaderTest.php Github

copy

Full Screen

...96 assertEquals('app_api_v1_sport_list', $result->get('\AnnotationReader\Fixtures\Entity1::name')[0]->getRouteName());97 }98 public function testCreatingSubscriptionFromAnnotation(): void99 {100 $testClass = 'SofaScore\\Purgatory\\SomeEntity';101 $testProperties = ['propertea1', 'propertea2'];102 $testRouteName = 'test_route';103 $testRoute = new Route('/api/v1/test/route', ['_controller' => self::TEST_CONTROLLER]);104 /** @var PropertySubscription[] $subscriptions */105 $subscriptions = [];106 $sample = new PurgeOn(107 $testClass,108 $testProperties,109 ['entityId' => 'id']110 );111 $annotationsLoader = new AnnotationsLoader(...$this->getMocks());112 $annotationsLoader->parsePurgeOn(113 $sample,114 $testRouteName,115 $testRoute,116 $subscriptions117 );118 self::assertCount(2, $subscriptions);119 self::assertInstanceOf(PropertySubscription::class, $subscriptions[0]);120 self::assertInstanceOf(PropertySubscription::class, $subscriptions[1]);121 self::assertEquals($testClass, $subscriptions[0]->getClass());122 self::assertEquals($testClass, $subscriptions[1]->getClass());123 self::assertEquals($testProperties[0], $subscriptions[0]->getProperty());124 self::assertEquals($testProperties[1], $subscriptions[1]->getProperty());125 $expArr = [126 'entityId' => ['id']127 ];128 self::assertEquals($expArr, $subscriptions[0]->getParameters());129 self::assertEquals($expArr, $subscriptions[1]->getParameters());130 self::assertEquals($testRouteName, $subscriptions[0]->getRouteName());131 self::assertEquals($testRouteName, $subscriptions[1]->getRouteName());132 self::assertEquals($testRoute->getPath(), $subscriptions[0]->getRoute()->getPath());133 self::assertEquals($testRoute->getPath(), $subscriptions[1]->getRoute()->getPath());134 }135 /**136 * @throws \ReflectionException|\Exception137 */138 public function testResolveSubscriptionsWithEmbeddedProperties(): void139 {140 $testClass = Entity1::class;141 $testProperty = 'propeteeh';142 $testRouteName = 'test_route';143 $testRoute = new Route('/api/v1/test/route', ['_controller' => self::TEST_CONTROLLER]);144 $subscription = new PropertySubscription($testClass, $testProperty);145 $subscription->setParameters(['entityId' => ['id']]);146 $subscription->setRoute($testRoute);147 $subscription->setRouteName($testRouteName);148 $mocks = [149 $configurationMock,150 $routerMock,151 $controllerResolverMock,152 $readerMock,153 $objectManagerMock154 ] = $this->getMocks();155 $mockedMetadata = $this->mockClassMetadata(156 $testClass,157 ['name', 'id', 'createdAt'],158 [$testProperty]159 );160 $mockedMetadata->method('getAssociationMappedByTargetField')->willReturn('name');161 $mockedMetadata->method('getAssociationTargetClass')->willReturn($testClass);162 $objectManagerMock->method('getClassMetadata')->willReturn(163 $mockedMetadata164 );165 $annotationsLoader = new AnnotationsLoader(...$mocks);166 $output = $annotationsLoader->resolveSubscriptions([$subscription]);167 self::assertCount(1, $output);168 $outputSubscription = $output[0];169 self::assertInstanceOf(PropertySubscription::class, $outputSubscription);170 self::assertEquals($testClass, $outputSubscription->getClass());171 self::assertNull($outputSubscription->getProperty());172 self::assertEquals(['entityId' => ['name.id']], $outputSubscription->getParameters());173 self::assertEquals($testRouteName, $outputSubscription->getRouteName());174 self::assertEquals($testRoute->getPath(), $outputSubscription->getRoute()->getPath());175 }176 protected function setUp(): void177 {178 if (file_exists('./purgatory/mappings/collection.php')) {179 unlink('./purgatory/mappings/collection.php');180 }181 if (file_exists('./purgatory/mappings/collection.php.meta')) {182 unlink('./purgatory/mappings/collection.php.meta');183 }184 if (is_dir('./purgatory/mappings')) {...

Full Screen

Full Screen

MockTest.php

Source:MockTest.php Github

copy

Full Screen

...27 *28 * @package TonyBogdanov\MockableAnnotations\Test\Reader\MockableReader29 */30class MockTest extends AbstractTestCase {31 public function testClassEmpty() {32 $reader = new MockableReader( new AnnotationReader() );33 $reflection = new ReflectionClass( TestClass::class );34 $this->assertNull( $reader->getClassAnnotation( $reflection, TestMethodAnnotation::class ) );35 }36 public function testMethodEmpty() {37 $reader = new MockableReader( new AnnotationReader() );38 $reflection = new ReflectionMethod( TestClass::class, 'method' );39 $this->assertNull( $reader->getMethodAnnotation( $reflection, TestClassAnnotation::class ) );40 }41 public function testPropertyEmpty() {42 $reader = new MockableReader( new AnnotationReader() );43 $reflection = new ReflectionProperty( TestClass::class, 'property' );44 $this->assertNull( $reader->getPropertyAnnotation( $reflection, TestClassAnnotation::class ) );45 }46 public function testClassNoMock() {47 $reader = new MockableReader( new AnnotationReader() );48 $reflection = new ReflectionClass( TestClass::class );49 /** @var TestClassAnnotation $annotation */50 $annotation = $reader->getClassAnnotation( $reflection, TestClassAnnotation::class );51 $this->assertInstanceOf( TestClassAnnotation::class, $annotation );52 $this->assertSame( 'declared', $annotation->value );53 }54 public function testMethodNoMock() {55 $reader = new MockableReader( new AnnotationReader() );56 $reflection = new ReflectionMethod( TestClass::class, 'method' );57 /** @var TestMethodAnnotation $annotation */58 $annotation = $reader->getMethodAnnotation( $reflection, TestMethodAnnotation::class );59 $this->assertInstanceOf( TestMethodAnnotation::class, $annotation );60 $this->assertSame( 'declared', $annotation->value );61 }62 public function testPropertyNoMock() {63 $reader = new MockableReader( new AnnotationReader() );64 $reflection = new ReflectionProperty( TestClass::class, 'property' );65 /** @var TestPropertyAnnotation $annotation */66 $annotation = $reader->getPropertyAnnotation( $reflection, TestPropertyAnnotation::class );67 $this->assertInstanceOf( TestPropertyAnnotation::class, $annotation );68 $this->assertSame( 'declared', $annotation->value );69 }70 public function testClassMock() {71 $reader = new MockableReader( new AnnotationReader() );72 $reflection = new ReflectionClass( TestClass::class );73 $mockedAnnotation = new TestClassAnnotation();74 $mockedAnnotation->value = 'mocked';75 $reader->addClassMockProvider( new ClassMockProvider( [ $mockedAnnotation ], new ClassOverrideStrategy() ) );76 /** @var TestClassAnnotation $annotation */77 $annotation = $reader->getClassAnnotation( $reflection, TestClassAnnotation::class );78 $this->assertInstanceOf( TestClassAnnotation::class, $annotation );79 $this->assertSame( 'mocked', $annotation->value );80 }81 public function testMethodMock() {82 $reader = new MockableReader( new AnnotationReader() );83 $reflection = new ReflectionMethod( TestClass::class, 'method' );84 $mockedAnnotation = new TestMethodAnnotation();...

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.

Trigger testClass code on LambdaTest Cloud Grid

Execute automation tests with testClass 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