@@ -62,4 +62,47 @@ public function testGetAllDocsWithNoDocs() {
62
62
$ this ->assertInternalType ('array ' , $ docs );
63
63
$ this ->assertEmpty ($ docs );
64
64
}
65
+
66
+ public function testCreateWithID () {
67
+ $ egdb1 = '{"db_name":"egdb","update_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuRAY-iPBYgydAApP5D1GYBAJmvHGw","sizes":{"file":8488,"external":0,"active":0},"purge_seq":0,"other":{"data_size":0},"doc_del_count":0,"doc_count":0,"disk_size":8488,"disk_format_version":6,"data_size":0,"compact_running":false,"instance_start_time":"0"} ' ;
68
+ $ use_response = new Response (200 , [], $ egdb1 );
69
+ $ create = '{"ok":true,"id":"abcde12345","rev":"1-928ec193918889e122e7ad45cfd88e47"} ' ;
70
+ $ create_response = new Response (201 , [], $ create );
71
+ $ fetch = '{"_id":"abcde12345","_rev":"1-928ec193918889e122e7ad45cfd88e47","noise":"howl"} ' ;
72
+ $ fetch_response = new Response (200 , [], $ fetch );
73
+
74
+ $ mock = new MockHandler ([ $ this ->db_response , $ use_response , $ create_response , $ fetch_response ]);
75
+ $ handler = HandlerStack::create ($ mock );
76
+ $ client = new Client (['handler ' => $ handler ]);
77
+
78
+ // userland code starts
79
+ $ server = new \PHPCouchDB \Server (["client " => $ client ]);
80
+ $ database = $ server ->useDB (["name " => "egdb " ]);
81
+ $ doc = $ database ->create (["noise " => "howl " , "id " => "abcde12345 " ]);
82
+
83
+ $ this ->assertInstanceOf ('PHPCouchDB\Document ' , $ doc );
84
+ $ this ->assertObjectHasAttribute ('id ' , $ doc );
85
+ $ this ->assertEquals ("abcde12345 " , $ doc ->id );
86
+ }
87
+
88
+ public function testCreateWithoutID () {
89
+ $ egdb1 = '{"db_name":"egdb","update_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuRAY-iPBYgydAApP5D1GYBAJmvHGw","sizes":{"file":8488,"external":0,"active":0},"purge_seq":0,"other":{"data_size":0},"doc_del_count":0,"doc_count":0,"disk_size":8488,"disk_format_version":6,"data_size":0,"compact_running":false,"instance_start_time":"0"} ' ;
90
+ $ use_response = new Response (200 , [], $ egdb1 );
91
+ $ create = '{"ok":true,"id":"95613816b3a7490727388ebb47002c0f","rev":"1-928ec193918889e122e7ad45cfd88e47"} ' ;
92
+ $ create_response = new Response (201 , [], $ create );
93
+ $ fetch = '{"_id":"95613816b3a7490727388ebb47002c0f","_rev":"1-928ec193918889e122e7ad45cfd88e47","noise":"howl"} ' ;
94
+ $ fetch_response = new Response (200 , [], $ fetch );
95
+
96
+ $ mock = new MockHandler ([ $ this ->db_response , $ use_response , $ create_response , $ fetch_response ]);
97
+ $ handler = HandlerStack::create ($ mock );
98
+ $ client = new Client (['handler ' => $ handler ]);
99
+
100
+ // userland code starts
101
+ $ server = new \PHPCouchDB \Server (["client " => $ client ]);
102
+ $ database = $ server ->useDB (["name " => "egdb " ]);
103
+ $ doc = $ database ->create (["noise " => "howl " ]);
104
+
105
+ $ this ->assertInstanceOf ('PHPCouchDB\Document ' , $ doc );
106
+ $ this ->assertObjectHasAttribute ('id ' , $ doc );
107
+ }
65
108
}
0 commit comments