spec/etcd/keys_spec.rb in etcd-0.2.2 vs spec/etcd/keys_spec.rb in etcd-0.2.3
- old
+ new
@@ -1,68 +1,106 @@
require 'spec_helper'
describe Etcd::Keys do
- let(:client) do
- Etcd.client
- end
+ shared_examples 'basic key operation' do
- it '#set/#get' do
- key = random_key
- value = uuid.generate
- client.set(key, value: value)
- expect(client.get(key).value).to eq(value)
- end
-
- context '#exists?' do
- it 'should be true for existing keys' do
+ it '#set/#get' do
key = random_key
- client.create(key, value: 10)
- expect(client.exists?(key)).to be_true
+ value = uuid.generate
+ client.set(key, value: value)
+ expect(client.get(key).value).to eq(value)
end
- it 'should be true for existing keys' do
- expect(client.exists?(random_key)).to be_false
- end
- end
- context 'directory' do
- it 'should be able to create a directory' do
- d = random_key
- client.create(d, dir: true)
- expect(client.get(d)).to be_true
- end
- context 'empty' do
- it 'should be able to delete with dir flag' do
- d = random_key
- client.create(d, dir: true)
- expect(client.delete(d, dir: true)).to be_true
+ context '#exists?' do
+ it 'should be true for existing keys' do
+ key = random_key
+ client.create(key, value: 10)
+ expect(client.exists?(key)).to be_true
end
-
- it 'should not be able to delete without dir flag' do
- d = random_key
- client.create(d, dir: true)
- client.create("#{d}/foobar", value: 10)
- expect do
- client.delete(d)
- end.to raise_error(Etcd::NotFile)
+ it 'should be true for existing keys' do
+ expect(client.exists?(random_key)).to be_false
end
end
- context 'not empty' do
- it 'should be able to delete with recursive flag' do
+
+ context 'directory' do
+ it 'should be able to create a directory' do
d = random_key
client.create(d, dir: true)
- client.create("#{d}/foobar")
- expect do
- client.delete(d, dir: true, recursive: true)
- end.to_not raise_error
+ expect(client.get(d)).to be_true
end
- it 'should be not able to delete without recursive flag' do
- d = random_key
- client.create(d, dir: true)
- client.create("#{d}/foobar")
- expect do
- client.delete(d, dir: true)
- end.to raise_error(Etcd::DirNotEmpty)
+ context 'empty' do
+ it 'should be able to delete with dir flag' do
+ d = random_key
+ client.create(d, dir: true)
+ expect(client.delete(d, dir: true)).to be_true
+ end
+
+ it 'should not be able to delete without dir flag' do
+ d = random_key
+ client.create(d, dir: true)
+ client.create("#{d}/foobar", value: 10)
+ expect do
+ client.delete(d)
+ end.to raise_error(Etcd::NotFile)
+ end
end
+ context 'not empty' do
+ it 'should be able to delete with recursive flag' do
+ d = random_key
+ client.create(d, dir: true)
+ client.create("#{d}/foobar")
+ expect do
+ client.delete(d, dir: true, recursive: true)
+ end.to_not raise_error
+ end
+ it 'should be not able to delete without recursive flag' do
+ d = random_key
+ client.create(d, dir: true)
+ client.create("#{d}/foobar")
+ expect do
+ client.delete(d, dir: true)
+ end.to raise_error(Etcd::DirNotEmpty)
+ end
+ end
end
+ end
+
+ context 'without ssl' do
+ before(:all) do
+ start_daemon
+ end
+ after(:all) do
+ stop_daemon
+ end
+ let(:client) do
+ etcd_client
+ end
+ it_should_behave_like 'basic key operation'
+ end
+
+ context 'with ssl' do
+ before(:all) do
+ start_daemon(1, use_ssl: true)
+ end
+ after(:all) do
+ stop_daemon
+ end
+ let(:client) do
+ etcd_ssl_client
+ end
+ it_should_behave_like 'basic key operation'
+ end
+
+ context 'with ssl and client certificate' do
+ before(:all) do
+ start_daemon(1, use_ssl: true, check_client_cert: true )
+ end
+ after(:all) do
+ stop_daemon
+ end
+ let(:client) do
+ etcd_ssl_client_with_cert
+ end
+ it_should_behave_like 'basic key operation'
end
end