em-synchrony-moped 0.9.4 → 1.0.0.beta.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.
- checksums.yaml +15 -0
- data/.gitignore +4 -0
- data/Guardfile +17 -0
- data/Rakefile +6 -12
- data/em-synchrony-moped.gemspec +10 -3
- data/lib/em-synchrony/moped/cluster.rb +20 -0
- data/lib/em-synchrony/moped/connection.rb +122 -0
- data/lib/em-synchrony/moped/node.rb +48 -0
- data/lib/em-synchrony/moped.rb +5 -181
- data/spec/lib/em-synchrony/moped/cluster_spec.rb +53 -0
- data/spec/lib/em-synchrony/moped/connection_spec.rb +137 -0
- data/spec/lib/em-synchrony/moped/node_spec.rb +138 -0
- data/spec/spec_helper.rb +35 -7
- data/spec/support/contexts.rb +32 -0
- data/spec/support/simulated_mongod.rb +75 -46
- metadata +121 -25
- data/spec/moped_spec.rb +0 -124
data/spec/moped_spec.rb
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'moped'
|
4
|
-
require 'em-synchrony/moped'
|
5
|
-
|
6
|
-
describe "em-synchrony/moped" do
|
7
|
-
|
8
|
-
def new_node(options={})
|
9
|
-
options.merge!(:timeout => 1)
|
10
|
-
host = options.delete(:host) || 'localhost'
|
11
|
-
Moped::Node.new("#{host}:#{FakeMongodHelper::BASE_PORT}", options)
|
12
|
-
end
|
13
|
-
|
14
|
-
context "without ssl" do
|
15
|
-
|
16
|
-
it "should connect" do
|
17
|
-
EventMachine.synchrony do
|
18
|
-
start_mongod
|
19
|
-
|
20
|
-
node = new_node
|
21
|
-
node.refresh
|
22
|
-
node.should be_primary
|
23
|
-
EM.stop
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
it "should raise a connection error on timeout" do
|
29
|
-
lambda {
|
30
|
-
EventMachine.synchrony do
|
31
|
-
start_mongod
|
32
|
-
|
33
|
-
# google.com seems timeout for my tests...
|
34
|
-
node = new_node(:host => "google.com")
|
35
|
-
node.refresh
|
36
|
-
|
37
|
-
EM.stop
|
38
|
-
end
|
39
|
-
}.should raise_exception(Moped::Errors::ConnectionFailure, /ETIMEDOUT/)
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should raise a connection error on connection refused" do
|
43
|
-
lambda {
|
44
|
-
EventMachine.synchrony do
|
45
|
-
new_node.refresh
|
46
|
-
EM.stop
|
47
|
-
end
|
48
|
-
}.should raise_exception(Moped::Errors::ConnectionFailure, /ECONNREFUSED/)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context "without ssl" do
|
53
|
-
it "should connect and not verify peer" do
|
54
|
-
EventMachine.synchrony do
|
55
|
-
start_mongod(
|
56
|
-
:ssl => {
|
57
|
-
:private_key_file => "#{SSL_DIR}/server.key",
|
58
|
-
:cert_chain_file => "#{SSL_DIR}/server.crt",
|
59
|
-
:verify_peer => false
|
60
|
-
}
|
61
|
-
)
|
62
|
-
|
63
|
-
node = new_node(:ssl => {:verify_peer => false})
|
64
|
-
node.refresh
|
65
|
-
node.should be_primary
|
66
|
-
|
67
|
-
EM.stop
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should connect and verify peer" do
|
72
|
-
EventMachine.synchrony do
|
73
|
-
start_mongod(
|
74
|
-
:ssl => {
|
75
|
-
:private_key_file => "#{SSL_DIR}/server.key",
|
76
|
-
:cert_chain_file => "#{SSL_DIR}/server.crt",
|
77
|
-
:verify_peer => false
|
78
|
-
}
|
79
|
-
)
|
80
|
-
|
81
|
-
node = new_node(:ssl => {
|
82
|
-
:verify_peer => true,
|
83
|
-
:verify_cert => "#{SSL_DIR}/ca_cert.pem",
|
84
|
-
:verify_host => "localhost"
|
85
|
-
})
|
86
|
-
node.refresh
|
87
|
-
node.should be_primary
|
88
|
-
|
89
|
-
EM.stop
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
|
94
|
-
it "should connect and fail to verify peer" do
|
95
|
-
lambda {
|
96
|
-
|
97
|
-
EventMachine.synchrony do
|
98
|
-
start_mongod(
|
99
|
-
:ssl => {
|
100
|
-
:private_key_file => "#{SSL_DIR}/untrusted.key",
|
101
|
-
:cert_chain_file => "#{SSL_DIR}/untrusted.crt",
|
102
|
-
:verify_peer => false
|
103
|
-
}
|
104
|
-
)
|
105
|
-
|
106
|
-
node = new_node(:ssl => {
|
107
|
-
:verify_peer => true,
|
108
|
-
:verify_cert => "#{SSL_DIR}/ca_cert.pem",
|
109
|
-
:verify_host => "localhost"
|
110
|
-
})
|
111
|
-
|
112
|
-
node.refresh
|
113
|
-
node.should be_primary
|
114
|
-
|
115
|
-
EM.stop
|
116
|
-
end
|
117
|
-
}.should raise_exception(Moped::Errors::ConnectionFailure, /Failed to verify SSL certificate of peer/)
|
118
|
-
end
|
119
|
-
|
120
|
-
|
121
|
-
end
|
122
|
-
|
123
|
-
|
124
|
-
end
|