]> gitweb.factorcode.org Git - factor.git/blob - basis/couchdb/couchdb-tests.factor
ui.theme.switching.tools: switch breakpoint symbol
[factor.git] / basis / couchdb / couchdb-tests.factor
1 ! Copyright (C) 2008 Alex Chapman
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors assocs couchdb hashtables kernel namespaces
4 random.data sequences strings tools.test ;
5 IN: couchdb.tests
6
7 ! You must have a CouchDB server (currently only the version from svn will
8 ! work) running on localhost and listening on the default port for these tests
9 ! to work.
10
11 <default-server> "factor-test" <db> [
12     [ ] [ couch get ensure-db ] unit-test
13     [ couch get create-db ] must-fail
14     [ ] [ couch get delete-db ] unit-test
15     [ couch get delete-db ] must-fail
16     [ ] [ couch get ensure-db ] unit-test
17     [ ] [ couch get ensure-db ] unit-test
18     [ 0 ] [ couch get db-info "doc_count" of ] unit-test
19     [ ] [ couch get compact-db ] unit-test
20     [ t ] [ couch get server>> next-uuid string? ] unit-test
21     [ ] [ H{
22             { "Subject" "I like Planktion" }
23             { "Tags" { "plankton" "baseball" "decisions" } }
24             { "Body"
25               "I decided today that I don't like baseball. I like plankton." }
26             { "Author" "Rusty" }
27             { "PostedDate" "2006-08-15T17:30:12Z-04:00" }
28            } save-doc ] unit-test
29     [ t ] [ couch get all-docs "rows" of first "id" of dup "id" set string? ] unit-test
30     [ t ] [ "id" get dup load-doc id> = ] unit-test
31     [ ] [ "id" get load-doc save-doc ] unit-test
32     [ "Rusty" ] [ "id" get load-doc "Author" of ] unit-test
33     [ ] [ "id" get load-doc "Alex" "Author" pick set-at save-doc ] unit-test
34     [ "Alex" ] [ "id" get load-doc "Author" of ] unit-test
35     [ 1 ] [ "function(doc) { emit(null, doc) }" temp-view-map "total_rows" of ] unit-test
36     [ ] [ H{
37          { "_id" "_design/posts" }
38          { "language" "javascript" }
39          { "views" H{
40              { "all" H{ { "map" "function(doc) { emit(null, doc) }" } } }
41            }
42          }
43        } save-doc ] unit-test
44     [ t ] [ "id" get load-doc delete-doc string? ] unit-test
45     [ "id" get load-doc ] must-fail
46
47     { t } [
48         "oga" "boga" associate
49         couch get db-url 10 random-string append
50         couch-put "ok" of
51     ] unit-test
52
53     [ ] [ couch get delete-db ] unit-test
54 ] with-couch