From b8ba4f27a82868e0b3338b4af761f7c44226e729 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 15 Jan 2018 18:21:44 +0100 Subject: (WIP) first steps towards implementing keys API --- test/unit/keyring_test.rb | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 test/unit/keyring_test.rb (limited to 'test') diff --git a/test/unit/keyring_test.rb b/test/unit/keyring_test.rb new file mode 100644 index 0000000..059b8dd --- /dev/null +++ b/test/unit/keyring_test.rb @@ -0,0 +1,60 @@ +require 'test_helper' + +class KeyringTest < ActiveSupport::TestCase + + test 'create initial key' do + keyring.create 'type', 'value' + assert_equal 'value', keyring.key_of_type('type')['value'] + end + + test 'raise on creating twice' do + keyring.create 'type', 'value' + assert_raises Keyring::Error do + keyring.create 'type', 'value' + end + end + + test 'update with new key' do + keyring.create 'type', 'value' + initial_rev = keyring.key_of_type('type')['rev'] + keyring.update 'type', rev: initial_rev, value: 'new value' + assert_equal 'new value', keyring.key_of_type('type')['value'] + end + + test 'raise on updating without rev' do + keyring.create 'type', 'value' + assert_raises Keyring::Error do + keyring.update 'type', rev: nil ,value: 'new value' + end + assert_equal 'value', keyring.key_of_type('type')['value'] + end + + test 'raise on updating with wrong rev' do + keyring.create 'type', 'value' + assert_raises Keyring::Error do + keyring.update 'type', rev: 'wrong rev', value: 'new value' + end + assert_equal 'value', keyring.key_of_type('type')['value'] + end + + + protected + + def keyring + @keyring ||= Keyring.new(teststorage) + end + + def teststorage + @teststorage ||= Hash.new.tap do |dummy| + def dummy.set_key(type, value) + self[type] = value + end + + def dummy.keys + self + end + + def dummy.save; end + end + end +end -- cgit v1.2.3