public function testIgnoreUnknown()
 {
     $classObject = new ClassObject();
     $classObject->setIgnoreUnknown(true);
     $this->assertEquals(true, $classObject->canIgnoreUnknown());
 }
 /**
  * Creates a basic ClassObject instance, and sets the config properties on the class
  * @param \ReflectionClass $class The reflected class to create the ClassObject instance from
  * @return ClassObject
  */
 protected function createClassObject(\ReflectionClass $class)
 {
     $classObject = new ClassObject();
     /** @var MarshallConfig $config */
     $config = $this->reader->getClassAnnotation($class, '\\PhpJsonMarshaller\\Annotations\\MarshallConfig');
     if (isset($config)) {
         if ($config->validate()) {
             $classObject->setIgnoreUnknown($config->canIgnoreUnknown());
         }
     }
     return $classObject;
 }
 /**
  * Create an instance of a new class
  * @param string $classString
  * @param ClassObject $decodedClass
  * @param array $assocArray
  * @return object
  */
 protected function createClass($classString, $decodedClass, $assocArray)
 {
     $constructorParams = $decodedClass->getConstructorParams();
     if (count($constructorParams) === 0) {
         return new $classString();
     }
     $decodedParams = [];
     foreach ($constructorParams as $param) {
         $val = null;
         if (isset($assocArray[$param->getAnnotationName()])) {
             $val = $this->decodeValue($assocArray[$param->getAnnotationName()], $param->getPropertyType());
         }
         $decodedParams[] = $val;
     }
     $reflectedClass = new \ReflectionClass($classString);
     return $reflectedClass->newInstanceArgs($decodedParams);
 }