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']); }