/**
  * Data provider for user types with multiple components
  */
 public function userTypeWithMultipleComponents()
 {
     $cassandraTypes = array_merge($this->scalarCassandraTypes(), $this->compositeCassandraTypes());
     $sizes = range(2, count($cassandraTypes));
     return array_map(function ($size) use($cassandraTypes) {
         $types = array();
         for ($i = 0; $i < $size; $i++) {
             $types["field{$i}"] = $cassandraTypes[$i][0];
         }
         $user = new UserTypeValue($types);
         $userType = $user->type()->withName(self::userTypeString($user->type()));
         for ($i = 0; $i < $size; $i++) {
             $user->set("field{$i}", $cassandraTypes[$i][1][0]);
         }
         return array($userType, $user);
     }, $sizes);
 }
 /**
  * @expectedException         InvalidArgumentException
  * @expectedExceptionMessage  argument must be an int, 'text' given
  */
 public function testInvalidType()
 {
     $udt = new UserTypeValue(array('name1' => Type::int()));
     $udt->set('name1', 'text');
 }