@@ -27,7 +27,7 @@ public function setUp() {
2727 $ this ->fetch_response = new Response (200 , [], $ fetch );
2828 }
2929
30- public function testUpdateConflict () {
30+ public function testUpdate () {
3131 $ update = '{"ok":true,"id":"abcde12345","rev":"2-74a0465bd6e3ea40a1a3752b93916762"} ' ;
3232 $ update_response = new Response (200 , [], $ update );
3333
@@ -55,7 +55,7 @@ public function testUpdateConflict() {
5555 /**
5656 * @expectedException \PHPCouchDB\Exception\DocumentConflictException
5757 */
58- public function testUpdate () {
58+ public function testUpdateConflict () {
5959 $ update = '{"error":"conflict","reason":"Document update conflict."} ' ;;
6060 $ update_response = new Response (409 , [], $ update );
6161
@@ -72,4 +72,47 @@ public function testUpdate() {
7272 $ newdoc = $ doc ->update ();
7373 }
7474
75+ public function testDelete () {
76+ $ delete = '{"ok":true,"id":"abcde12345","rev":"2-74a0465bd6e3ea40a1a3752b93916762"} ' ;
77+ $ delete_response = new Response (200 , [], $ delete );
78+
79+ $ fetch3 = '{"error":"not_found","reason":"deleted"} ' ;
80+ $ fetch_response3 = new Response (404 , [], $ fetch3 );
81+
82+ $ mock = new MockHandler ([ $ this ->db_response , $ this ->use_response , $ this ->create_response , $ this ->fetch_response , $ delete_response , $ fetch_response3 ]);
83+ $ handler = HandlerStack::create ($ mock );
84+ $ client = new Client (['handler ' => $ handler ]);
85+
86+ // userland code starts
87+ $ server = new \PHPCouchDB \Server (["client " => $ client ]);
88+ $ database = $ server ->useDB (["name " => "egdb " ]);
89+ $ doc = $ database ->create (["noise " => "howl " , "id " => "abcde12345 " ]);
90+
91+ $ result = $ doc ->delete ();
92+ $ this ->assertEquals (true , $ result );
93+
94+ // should be able to delete an already-deleted doc without errors
95+
96+ $ result = $ doc ->delete ();
97+ $ this ->assertEquals (true , $ result );
98+ }
99+
100+ /**
101+ * @expectedException \PHPCouchDB\Exception\DocumentConflictException
102+ */
103+ public function testDeleteConflict () {
104+ $ delete = '{"error":"conflict","reason":"Document update conflict."} ' ;
105+ $ delete_response = new Response (409 , [], $ delete );
106+
107+ $ mock = new MockHandler ([ $ this ->db_response , $ this ->use_response , $ this ->create_response , $ this ->fetch_response , $ delete_response ]);
108+ $ handler = HandlerStack::create ($ mock );
109+ $ client = new Client (['handler ' => $ handler ]);
110+
111+ // userland code starts
112+ $ server = new \PHPCouchDB \Server (["client " => $ client ]);
113+ $ database = $ server ->useDB (["name " => "egdb " ]);
114+ $ doc = $ database ->create (["noise " => "howl " , "id " => "abcde12345 " ]);
115+
116+ $ result = $ doc ->delete ();
117+ }
75118}
0 commit comments