示例#1
0
 /**
  * Maps requested type from request into the current registry of types
  *
  * @return string[]
  * @throws \InvalidArgumentException
  */
 private function getRequestedTypes()
 {
     $requestedTypes = [];
     if (isset($this->requestArgs[self::KEY_TYPES])) {
         $requestedTypes = explode(',', $this->requestArgs[self::KEY_TYPES]);
         $requestedTypes = array_filter(array_map('trim', $requestedTypes), 'strlen');
     }
     $availableTypes = $this->cacheManager->getAvailableTypes();
     if (empty($requestedTypes)) {
         return $availableTypes;
     } else {
         $unsupportedTypes = array_diff($requestedTypes, $availableTypes);
         if ($unsupportedTypes) {
             throw new \InvalidArgumentException("The following requested cache types are not supported: '" . join("', '", $unsupportedTypes) . "'.\nSupported types: " . join(", ", $availableTypes) . "");
         }
         return array_values(array_intersect($availableTypes, $requestedTypes));
     }
 }
示例#2
0
 public function testGetAvailableTypes()
 {
     $types = [['id' => 'foo', 'status' => true], ['id' => 'bar', 'status' => false]];
     $this->cacheTypeList->expects($this->once())->method('getTypes')->willReturn($types);
     $this->assertSame(['foo', 'bar'], $this->model->getAvailableTypes());
 }