persist(self::$summit); self::$em->flush(); } protected function tearDown() { self::clearTestData(); parent::tearDown(); } public function testAddGet(){ $types = self::$media_file_type_repository->findAll(); $params = [ 'id' => self::$summit->getId(), 'expand' => 'type,presentation_types' ]; $event_types = self::$summit->getEventTypes(); $payload = [ 'name' => str_random(16).'media_upload_type', 'type_id' => $types[0]->getId(), 'description' => 'this is a description', 'max_size' => 2048, 'is_mandatory' => false, 'private_storage_type' => \App\Models\Utils\IStorageTypesConstants::DropBox, 'public_storage_type' => \App\Models\Utils\IStorageTypesConstants::Swift, 'presentation_types' => [$event_types[0]->getId()] ]; $headers = [ "HTTP_Authorization" => " Bearer " . $this->access_token, "CONTENT_TYPE" => "application/json" ]; $response = $this->action( "POST", "OAuth2SummitMediaUploadTypeApiController@add", $params, [], [], [], $headers, json_encode($payload) ); $content = $response->getContent(); $response = json_decode($content, true); $this->assertResponseStatus(201); $this->assertTrue(isset($response['id'])); $response = $this->action( "GET", "OAuth2SummitMediaUploadTypeApiController@getAllBySummit", [ 'id' => self::$summit->getId(), ], [], [], [], $headers, json_encode($payload) ); $content = $response->getContent(); $response = json_decode($content, true); $this->assertResponseStatus(200); } public function testAddAndDeleteCascade(){ $types = self::$media_file_type_repository->findAll(); $params = [ 'id' => self::$summit->getId(), 'expand' => 'type,presentation_types' ]; $event_types = self::$summit->getEventTypes(); $payload = [ 'name' => str_random(16).'media_upload_type', 'type_id' => $types[0]->getId(), 'description' => 'this is a description', 'max_size' => 2048, 'is_mandatory' => false, 'private_storage_type' => \App\Models\Utils\IStorageTypesConstants::DropBox, 'public_storage_type' => \App\Models\Utils\IStorageTypesConstants::Swift, 'presentation_types' => [$event_types[0]->getId()] ]; $headers = [ "HTTP_Authorization" => " Bearer " . $this->access_token, "CONTENT_TYPE" => "application/json" ]; $response = $this->action( "POST", "OAuth2SummitMediaUploadTypeApiController@add", $params, [], [], [], $headers, json_encode($payload) ); $content = $response->getContent(); $response = json_decode($content, true); $this->assertResponseStatus(201); $this->assertTrue(isset($response['id'])); self::$em = Registry::resetManager(SilverstripeBaseModel::EntityManager); $type = self::$media_file_type_repository->find($types[0]->getId()); self::$em->remove($type); self::$em->flush(); } public function testAddDelete(){ $types = self::$media_file_type_repository->findAll(); $params = [ 'id' => self::$summit->getId(), 'expand' => 'type,presentation_types' ]; $event_types = self::$summit->getEventTypes(); $payload = [ 'name' => str_random(16).'media_upload_type', 'type_id' => $types[0]->getId(), 'description' => 'this is a description', 'max_size' => 2048, 'is_mandatory' => false, 'private_storage_type' => \App\Models\Utils\IStorageTypesConstants::DropBox, 'public_storage_type' => \App\Models\Utils\IStorageTypesConstants::Swift, 'presentation_types' => [ $event_types[0]->getId() ] ]; $headers = [ "HTTP_Authorization" => " Bearer " . $this->access_token, "CONTENT_TYPE" => "application/json" ]; $response = $this->action( "POST", "OAuth2SummitMediaUploadTypeApiController@add", $params, [], [], [], $headers, json_encode($payload) ); $content = $response->getContent(); $response = json_decode($content, true); $this->assertResponseStatus(201); $this->assertTrue(isset($response['id'])); $response = $this->action( "DELETE", "OAuth2SummitMediaUploadTypeApiController@delete", [ 'id' => self::$summit->getId(), 'type_id' => intval($response['id']) ], [], [], [], $headers, json_encode($payload) ); $this->assertResponseStatus(204); } public function testAddAddPresentationType(){ $types = self::$media_file_type_repository->findAll(); $params = [ 'id' => self::$summit->getId(), 'expand' => 'type,presentation_types' ]; $event_types = self::$summit->getEventTypes(); $payload = [ 'name' => str_random(16).'media_upload_type', 'type_id' => $types[0]->getId(), 'description' => 'this is a description', 'max_size' => 2048, 'is_mandatory' => false, 'private_storage_type' => \App\Models\Utils\IStorageTypesConstants::DropBox, 'public_storage_type' => \App\Models\Utils\IStorageTypesConstants::Swift, ]; $headers = [ "HTTP_Authorization" => " Bearer " . $this->access_token, "CONTENT_TYPE" => "application/json" ]; $response = $this->action( "POST", "OAuth2SummitMediaUploadTypeApiController@add", $params, [], [], [], $headers, json_encode($payload) ); $content = $response->getContent(); $response = json_decode($content, true); $this->assertResponseStatus(201); $this->assertTrue(isset($response['id'])); $response = $this->action( "PUT", "OAuth2SummitMediaUploadTypeApiController@addToPresentationType", [ 'id' => self::$summit->getId(), 'type_id' => intval($response['id']), 'presentation_type_id' => $event_types[0]->getId() ], [], [], [], $headers, json_encode($payload) ); $content = $response->getContent(); $response = json_decode($content, true); $this->assertResponseStatus(201); } }