akdubya-cushion 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/spec/helpers.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'bacon'
2
+ require File.dirname(File.dirname(__FILE__)) + '/lib/cushion'
@@ -0,0 +1,119 @@
1
+ require File.dirname(__FILE__) + '/helpers'
2
+
3
+ describe "Cushion::Server" do
4
+
5
+ before do
6
+ @server = Cushion::Server.new
7
+ end
8
+
9
+ describe "Operations" do
10
+
11
+ it "should retrieve the welcome message" do
12
+ @server.info["couchdb"].should == "Welcome"
13
+ end
14
+
15
+ it "should retrieve active tasks" do
16
+ @server.active_tasks.should == []
17
+ end
18
+
19
+ it "should retrieve the server config" do
20
+ @server.config["couchdb"].should.not.be.nil
21
+ end
22
+
23
+ it "should set config options" do
24
+ @server.set_config("newsection", "newoption", "newvalue").should == "\"newvalue\"\n"
25
+ end
26
+
27
+ it "should restart the server" do
28
+ @server.restart["ok"].should.be.true
29
+ end
30
+
31
+ it "should retrieve server stats" do
32
+ @server.stats["httpd_status_codes"].should.not.be.nil
33
+ end
34
+
35
+ it "should retrieve and cache UUIDs from the server" do
36
+ @server.next_uuid.length.should == 32
37
+ @server.instance_variable_get(:@uuids).length.should == 999
38
+ end
39
+
40
+ end
41
+
42
+ describe "Databases" do
43
+
44
+ it "should create and delete databases" do
45
+ @server.create(:server_test)["ok"].should.be.true
46
+ @server.delete(:server_test)["ok"].should.be.true
47
+ end
48
+
49
+ it "should retrieve a list of all databases on the server" do
50
+ @server.create(:server_list_test)
51
+ @server.all_dbs.should.include "server_list_test"
52
+ @server.delete(:server_list_test)
53
+ end
54
+
55
+ it "should recreate a database" do
56
+ @server.recreate(:server_recreate_test).should.be.kind_of Cushion::Database
57
+ @server.all_dbs.should.include "server_recreate_test"
58
+ @server.delete(:server_recreate_test)
59
+ end
60
+
61
+ it "should instantiate a Cushion::Database with server[:dbname]" do
62
+ @server[:server_test].should.be.kind_of Cushion::Database
63
+ end
64
+
65
+ it "should instantiate a Cushion::Database with db('dbname')" do
66
+ @server.db(:server_test).should.be.kind_of Cushion::Database
67
+ end
68
+
69
+ it "should create a database if it does not already exist with db!('dbname')" do
70
+ @server.db!(:server_autocreate_test).should.be.kind_of Cushion::Database
71
+ @server.all_dbs.should.include "server_autocreate_test"
72
+ @server.delete(:server_autocreate_test)
73
+ end
74
+
75
+ end
76
+
77
+ describe "Replication" do
78
+
79
+ before do
80
+ @server.create(:server_replication_test1)
81
+ @server.create(:server_replication_test2)
82
+ end
83
+
84
+ after do
85
+ @server.delete(:server_replication_test1)
86
+ @server.delete(:server_replication_test2)
87
+ end
88
+
89
+ it "should replicate databases" do
90
+ @server[:server_replication_test1].save_doc("_id" => "abc")
91
+ @server.replicate(:server_replication_test1, :server_replication_test2)["session_id"].should.not.be.nil
92
+ lambda { @server[:server_replication_test2].open_doc("abc") }.should.not.raise
93
+ end
94
+
95
+ end
96
+
97
+ describe "Content Negotiation" do
98
+
99
+ it "should transmit a parsed json request body" do
100
+ @server.send(:construct_payload, {:foo => "bar"},
101
+ :content_type => "application/json").should == "{\"foo\":\"bar\"}"
102
+ end
103
+
104
+ it "should transmit a plain request body" do
105
+ @server.send(:construct_payload, "Hello Baybay",
106
+ :content_type => "text/plain").should == "Hello Baybay"
107
+ end
108
+
109
+ it "should return a parsed json body" do
110
+ @server.get('').should.be.kind_of Hash
111
+ end
112
+
113
+ it "should return a plain string" do
114
+ @server.get('', :accept => "text/plain").should.be.kind_of String
115
+ end
116
+
117
+ end
118
+
119
+ end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: akdubya-cushion
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ platform: ruby
6
+ authors:
7
+ - Aleksander Williams
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-03-04 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0.9"
24
+ version:
25
+ description: A slim CouchDB client.
26
+ email: alekswilliams@earthlink.net
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - Rakefile
35
+ - README.rdoc
36
+ - LICENSE
37
+ - lib/cushion
38
+ - lib/cushion/database.rb
39
+ - lib/cushion/design.rb
40
+ - lib/cushion/server.rb
41
+ - lib/cushion/document.rb
42
+ - lib/cushion/core_ext.rb
43
+ - lib/cushion.rb
44
+ - spec/server_spec.rb
45
+ - spec/database_spec.rb
46
+ - spec/helpers.rb
47
+ - spec/cushion_spec.rb
48
+ has_rdoc: true
49
+ homepage: http://github.com/akdubya/cushion
50
+ post_install_message:
51
+ rdoc_options: []
52
+
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ version:
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ version:
67
+ requirements: []
68
+
69
+ rubyforge_project:
70
+ rubygems_version: 1.2.0
71
+ signing_key:
72
+ specification_version: 2
73
+ summary: A slim CouchDB client.
74
+ test_files: []
75
+