public function testCategoryAccessors()
 {
     $email = new SendGrid\Email();
     $email->setCategory('category_0');
     $this->assertEquals("{\"category\":[\"category_0\"]}", $email->getSmtpapiHeadersJson());
     $categories = array("category_1", "category_2", "category_3", "category_4");
     $email->setCategories($categories);
     $header = $email->getSmtpapiHeaders();
     // ensure that the array is the same
     $this->assertEquals($categories, $header['category']);
     // uses valid json
     $this->assertEquals("{\"category\":[\"category_1\",\"category_2\",\"category_3\",\"category_4\"]}", $email->getSmtpapiHeadersJson());
     // ensure that addCategory appends to the list of categories
     $category = "category_5";
     $email->addCategory($category);
     $header = $email->getSmtpapiHeaders();
     $this->assertEquals(5, count($header['category']));
     $categories[] = $category;
     $this->assertEquals($categories, $header['category']);
     // removeCategory removes all occurrences of a category
     $email->removeCategory("category_3");
     $header = $email->getSmtpapiHeaders();
     unset($categories[2]);
     $categories = array_values($categories);
     $this->assertEquals(4, count($header['category']));
     $this->assertEquals($categories, $header['category']);
 }