/tests/application/modules/Content/models/Template/Content_Model_Template_ServiceTest.php

https://github.com/ArchiCroc/Tower-Web-Platform · PHP · 357 lines · 180 code · 73 blank · 104 comment · 0 complexity · 6ff4c6753ae089bba9c76738a56760ed MD5 · raw file

  1. <?php
  2. //require_once dirname(__FILE__) . '/../../../../../../application/modules/Content/models/Section/Content/Service.php';
  3. /**
  4. * Test class for Content_Model_Template_Service.
  5. * Generated by PHPUnit on 2011-06-22 at 08:15:15.
  6. */
  7. class Content_Model_Template_ServiceTest extends PHPUnit_Framework_TestCase {
  8. /**
  9. * @var Content_Model_Template_Service
  10. */
  11. protected $service;
  12. /**
  13. * Sets up the fixture, for example, opens a network connection.
  14. * This method is called before a test is executed.
  15. */
  16. protected function setUp() {
  17. $this->service = new Content_Model_Template_Service;
  18. }
  19. /**
  20. * Tears down the fixture, for example, closes a network connection.
  21. * This method is called after a test is executed.
  22. */
  23. protected function tearDown() {
  24. // $this->service->deleteAll();
  25. }
  26. public function testGetMapper() {
  27. $this->assertInstanceOf('Content_Model_Template_MapperInterface', $this->service->getMapper());
  28. }
  29. /**
  30. * @todo Implement testSetMapper().
  31. */
  32. public function testSetMapper() {
  33. $mapper = new Content_Model_Template_MapperDbTable();
  34. $this->service->setMapper($mapper);
  35. $this->assertInstanceOf('Content_Model_Template_MapperInterface', $this->service->getMapper());
  36. $this->assertEquals($mapper, $this->service->getMapper());
  37. //$this->ass
  38. }
  39. private function createValidObject() {
  40. $object = new Content_Model_Template();
  41. //$content->id = 1;
  42. // $content->revision = 2;
  43. $object->owner = 1;
  44. $object->section = 2;
  45. $object->autosave = false;
  46. $object->url = 'testUrl';
  47. $object->type = 1;
  48. $object->visible = true;
  49. $object->active = true;
  50. $object->content = 'testContent';
  51. $result = $this->service->create($object);
  52. $this->assertInstanceOf('Content_Model_Template_Interface', $result);
  53. return $result;
  54. }
  55. public function testCreateInvalidContent() {
  56. $object = new Content_Model_Template();
  57. $object->owner = 1;
  58. $object->section = 2;
  59. $object->autosave = false;
  60. $object->type = 1;
  61. $object->visible = true;
  62. $object->active = true;
  63. $object->content = '';
  64. $this->setExpectedException('Exception');
  65. $result = $this->service->create($content);
  66. }
  67. //
  68. // public function testDuplicateUrl() {
  69. //
  70. // $content1 = $this->createValidContent();
  71. // $this->setExpectedException('DuplicateEntryException');
  72. // $content2 = $this->createValidContent();
  73. // }
  74. public function testCreateValidFromObject() {
  75. $result = $this->createValidObject();
  76. $this->assertNotNull($result->id);
  77. $this->assertNotNull($result->revision);
  78. $this->assertEquals(1, $result->owner);
  79. $this->assertEquals(2, $result->section);
  80. $this->assertEquals(false, $result->autosave);
  81. $this->assertEquals('testUrl', $result->url);
  82. $this->assertEquals(1, $result->type);
  83. $this->assertEquals(true, $result->visible);
  84. $this->assertEquals(true, $result->active);
  85. $this->assertEquals('testContent', $result->content);
  86. }
  87. public function testCreateDuplicateObject() {
  88. $this->markTestIncomplete();
  89. // $result = $this->createValidObject();
  90. //
  91. // $this->setExpectedException('DuplicateEntryException');
  92. // $result = $this->createValidObject();
  93. }
  94. // public function testToArray() {
  95. //
  96. // $content = new Content_Model_Template();
  97. //
  98. // $content->status = 0;
  99. // $content->primary_group = 1;
  100. // $content->username = 'testContentname';
  101. // $content->name = 'testName';
  102. // $content->location = 'testLocation';
  103. // $content->email = 'test@test.com';
  104. // $content->permissions = null;
  105. // $content->settings = array('test' => 'value');
  106. //
  107. // $array = $content->toArray();
  108. //
  109. // $this->assertArrayHasKey('primary_group', $array);
  110. // $this->assertEquals(1, $array['primary_group']);
  111. // }
  112. public function testCreateFromArray() {
  113. $content = array(
  114. // 'id' => 1,
  115. 'owner' => 1,
  116. 'section' => 2,
  117. 'autosave' => false,
  118. 'url' => 'testUrl',
  119. 'type' => 1,
  120. 'visible' => true,
  121. 'active' => true,
  122. 'content' => 'testContent');
  123. $result = $this->service->create($content);
  124. $this->assertInstanceOf('Content_Model_Template_Interface', $result);
  125. $this->assertNotNull($result->id);
  126. $this->assertNotNull($result->revision);
  127. $this->assertEquals(1, $result->owner);
  128. $this->assertEquals(2, $result->section);
  129. $this->assertEquals(false, $result->autosave);
  130. $this->assertEquals('testUrl', $result->url);
  131. $this->assertEquals(1, $result->type);
  132. $this->assertEquals(true, $result->visible);
  133. $this->assertEquals(true, $result->active);
  134. $this->assertEquals('testContent', $result->content);
  135. }
  136. public function testCreateException() {
  137. $this->setExpectedException('InvalidArgumentException');
  138. $badObject = new StdClass();
  139. $create = $this->service->create($badObject);
  140. }
  141. public function testGetObjectById() {
  142. //setup
  143. $content = $this->createValidObject();
  144. //test getObject
  145. $result = $this->service->getObjectByIdRevision($content->id,$content->revision);
  146. $this->assertInstanceOf('Content_Model_Template_Interface', $result);
  147. $this->assertNotNull($result->id);
  148. $this->assertNotNull($result->revision);
  149. $this->assertEquals(1, $result->owner);
  150. $this->assertEquals(2, $result->section);
  151. $this->assertEquals(false, $result->autosave);
  152. $this->assertEquals('testUrl', $result->url);
  153. $this->assertEquals(1, $result->type);
  154. $this->assertEquals(true, $result->visible);
  155. $this->assertEquals(true, $result->active);
  156. $this->assertEquals('testContent', $result->content);
  157. }
  158. // public function testGetObjectByUrl() {
  159. //
  160. // //setup
  161. // $content = $this->createValidContent();
  162. //
  163. // //test getObject
  164. // $result = $this->service->getObjectByUrl($content->url);
  165. //
  166. // $this->assertInstanceOf('Content_Model_Template_Interface', $result);
  167. //
  168. // $this->assertEquals($content->id, $result->id);
  169. // $this->assertEquals(0, $result->set);
  170. // $this->assertEquals(1, $result->parent);
  171. // $this->assertEquals(2, $result->order);
  172. // $this->assertEquals('testUrl', $result->url);
  173. // $this->assertEquals('testTitle', $result->title);
  174. // $this->assertEquals('testDescription', $result->description);
  175. // }
  176. //
  177. // public function testGetInvalidObjectByUrl() {
  178. //
  179. // $this->setExpectedException('NotFoundException');
  180. // $result = $this->service->getObjectByUrl("testnotindatabase");
  181. //
  182. // }
  183. public function testUpdateFromObject() {
  184. //setup
  185. $object = $this->createValidObject();
  186. //update values
  187. $object->owner = 3;
  188. $object->section = 4;
  189. $object->autosave = true;
  190. $object->url = 'testUrl2';
  191. $object->type = 2;
  192. $object->visible = false;
  193. $object->active = false;
  194. $object->content = 'testContent2';
  195. $result = $this->service->update($object);
  196. $this->assertInstanceOf('Content_Model_Template_Interface', $result);
  197. $this->assertNotNull($result->id);
  198. $this->assertNotNull($result->revision);
  199. $this->assertEquals(3, $result->owner);
  200. $this->assertEquals(4, $result->section);
  201. $this->assertEquals(true, $result->autosave);
  202. $this->assertEquals('testUrl2', $result->url);
  203. $this->assertEquals(2, $result->type);
  204. $this->assertEquals(false, $result->visible);
  205. $this->assertEquals(false, $result->active);
  206. $this->assertEquals('testContent2', $result->content);
  207. }
  208. public function testUpdateFromArray() {
  209. //setup
  210. $object = $this->createValidObject();
  211. $array = $object->toArray();
  212. //update values
  213. $array['owner'] = 3;
  214. $array['section'] = 4;
  215. $array['autosave'] = true;
  216. $array['url'] = 'testUrl2';
  217. $array['type'] = 2;
  218. $array['visible'] = false;
  219. $array['active'] = false;
  220. $array['content'] = 'testContent2';
  221. $result = $this->service->update($array);
  222. $this->assertInstanceOf('Content_Model_Template_Interface', $result);
  223. $this->assertNotNull($result->id);
  224. $this->assertNotNull($result->revision);
  225. $this->assertEquals(3, $result->owner);
  226. $this->assertEquals(4, $result->section);
  227. $this->assertEquals(true, $result->autosave);
  228. $this->assertEquals('testUrl2', $result->url);
  229. $this->assertEquals(2, $result->type);
  230. $this->assertEquals(false, $result->visible);
  231. $this->assertEquals(false, $result->active);
  232. $this->assertEquals('testContent2', $result->content);
  233. }
  234. public function testUpdateException() {
  235. $this->setExpectedException('InvalidArgumentException');
  236. $badObject = new StdClass();
  237. $create = $this->service->update($badObject);
  238. }
  239. public function testDeleteObject() {
  240. //setup
  241. $content = $this->createValidObject();
  242. //test delete
  243. $this->service->delete($content);
  244. //verify that it was deleted
  245. $this->setExpectedException('NotFoundException');
  246. $result = $this->service->getObjectByIdRevision($content->id,$content->revision);
  247. }
  248. public function testDeleteBySection() {
  249. //setup
  250. $content = $this->createValidObject();
  251. //test delete
  252. $this->service->deleteBySection($content->section);
  253. //verify that it was deleted
  254. $this->setExpectedException('NotFoundException');
  255. $result = $this->service->getObjectByIdRevision($content->id,$content->revision);
  256. }
  257. // public function testDeleteId() {
  258. //
  259. // //setup
  260. // $content = $this->createValidContent();
  261. // // $this->fail("id: ".$content->id);
  262. // $this->service->delete((int)$content->id);
  263. //
  264. // $this->setExpectedException('NotFoundException');
  265. // $result = $this->service->getObjectByIdRevision($content->id,$content->revision);
  266. // }
  267. public function testDeleteArray() {
  268. //setup
  269. $content = $this->createValidObject();
  270. // $this->fail("id: ".$content->id);
  271. $this->service->delete($content->toArray());
  272. $this->setExpectedException('NotFoundException');
  273. $result = $this->service->getObjectByIdRevision($content->id,$content->revision);
  274. // $this->fail(debugArray($result));
  275. }
  276. public function testDeleteException() {
  277. $this->setExpectedException('InvalidArgumentException');
  278. $badObject = new StdClass();
  279. $create = $this->service->delete($badObject);
  280. }
  281. public function testDeleteAll() {
  282. // $this->service->deleteAll();
  283. }
  284. }