public function testCategoryAccessors() { $message = new SendGrid\Mail(); $message->setCategory('category_0'); $this->assertEquals("{\"category\":[\"category_0\"]}", $message->getHeadersJson()); $categories = array("category_1", "category_2", "category_3", "category_4"); $message->setCategories($categories); $header = $message->getHeaders(); // 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\"]}", $message->getHeadersJson()); // ensure that addCategory appends to the list of categories $category = "category_5"; $message->addCategory($category); $header = $message->getHeaders(); $this->assertEquals(5, count($header['category'])); $categories[] = $category; $this->assertEquals($categories, $header['category']); // removeCategory removes all occurrences of a category $message->removeCategory("category_3"); $header = $message->getHeaders(); unset($categories[2]); $categories = array_values($categories); $this->assertEquals(4, count($header['category'])); $this->assertEquals($categories, $header['category']); }