akdubya-cushion 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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
+