/**
  * Tests the parsing of sort expressions from their string
  * representations.
  */
 public function testParsingFromString()
 {
     $sort = GaDataSortOrder::createFromString('ga:foo,ga:bar');
     $this->assertEquals('ga:foo,ga:bar', (string) $sort);
     $sort = GaDataSortOrder::createFromString('foo,-bar');
     $this->assertEquals('ga:foo,-ga:bar', (string) $sort);
     $sort->addField('baz');
     $this->assertEquals('ga:foo,-ga:bar,ga:baz', (string) $sort);
 }
 /**
  * Sets the sort order for the data to be returned from the query, either
  * as a formatted (comma-delimited) string, an array of sort order
  * component strings, or a Google\Analytics\GaDataSort instance.
  *
  * @param string, array, Google\Analytics\GaDataSortOrder $sort
  */
 public function setSort($sort)
 {
     if (is_string($sort)) {
         $sort = GaDataSortOrder::createFromString($sort);
     } elseif (is_array($sort)) {
         $sort = GaDataSortOrder::createFromString(implode(',', $sort));
     } elseif (!is_object($sort) || !$sort instanceof GaDataSortOrder) {
         throw new InvalidArgumentException('Sort orders must be provided as formatted strings, arrays, ' . 'or ' . __NAMESPACE__ . '\\GaDataSortOrder instances.');
     }
     $this->_sort = $sort;
 }