juno 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/Gemfile +2 -1
  2. data/README.md +9 -4
  3. data/lib/juno.rb +10 -9
  4. data/lib/juno/adapters/activerecord.rb +1 -1
  5. data/lib/juno/adapters/cassandra.rb +8 -1
  6. data/lib/juno/adapters/couch.rb +1 -1
  7. data/lib/juno/adapters/datamapper.rb +3 -3
  8. data/lib/juno/adapters/fog.rb +1 -1
  9. data/lib/juno/adapters/hbase.rb +64 -0
  10. data/lib/juno/adapters/lruhash.rb +69 -5
  11. data/lib/juno/adapters/memcached_dalli.rb +0 -4
  12. data/lib/juno/adapters/memcached_native.rb +0 -7
  13. data/lib/juno/adapters/mongo.rb +0 -4
  14. data/lib/juno/adapters/redis.rb +8 -1
  15. data/lib/juno/adapters/sequel.rb +1 -1
  16. data/lib/juno/adapters/tokyocabinet.rb +0 -4
  17. data/lib/juno/base.rb +10 -0
  18. data/lib/juno/expires.rb +1 -1
  19. data/lib/juno/transformer.rb +1 -0
  20. data/lib/juno/version.rb +1 -1
  21. data/spec/generate.rb +75 -17
  22. data/spec/juno/adapter_datamapper_spec.rb +0 -3
  23. data/spec/juno/adapter_hbase_spec.rb +13 -0
  24. data/spec/juno/adapter_lruhash_spec.rb +14 -16
  25. data/spec/juno/adapter_memory_spec.rb +6 -0
  26. data/spec/juno/expires_file_spec.rb +9 -0
  27. data/spec/juno/expires_memory_spec.rb +9 -0
  28. data/spec/juno/lock_spec.rb +6 -0
  29. data/spec/juno/null_adapter_spec.rb +3 -0
  30. data/spec/juno/proxy_expires_memory_spec.rb +9 -0
  31. data/spec/juno/simple_activerecord_spec.rb +7 -0
  32. data/spec/juno/simple_activerecord_with_expires_spec.rb +7 -0
  33. data/spec/juno/simple_cassandra_spec.rb +7 -0
  34. data/spec/juno/simple_couch_spec.rb +7 -0
  35. data/spec/juno/simple_couch_with_expires_spec.rb +7 -0
  36. data/spec/juno/simple_datamapper_spec.rb +7 -0
  37. data/spec/juno/simple_datamapper_with_expires_spec.rb +7 -0
  38. data/spec/juno/simple_datamapper_with_repository_spec.rb +7 -0
  39. data/spec/juno/simple_dbm_spec.rb +7 -0
  40. data/spec/juno/simple_dbm_with_expires_spec.rb +7 -0
  41. data/spec/juno/simple_file_spec.rb +7 -0
  42. data/spec/juno/simple_file_with_expires_spec.rb +7 -0
  43. data/spec/juno/simple_fog_spec.rb +7 -0
  44. data/spec/juno/simple_fog_with_expires_spec.rb +7 -0
  45. data/spec/juno/simple_gdbm_spec.rb +7 -0
  46. data/spec/juno/simple_gdbm_with_expires_spec.rb +7 -0
  47. data/spec/juno/simple_hashfile_spec.rb +7 -0
  48. data/spec/juno/simple_hashfile_with_expires_spec.rb +7 -0
  49. data/spec/juno/simple_hbase_spec.rb +45 -0
  50. data/spec/juno/simple_hbase_with_expires_spec.rb +46 -0
  51. data/spec/juno/simple_leveldb_spec.rb +7 -0
  52. data/spec/juno/simple_leveldb_with_expires_spec.rb +7 -0
  53. data/spec/juno/simple_localmemcache_spec.rb +7 -0
  54. data/spec/juno/simple_localmemcache_with_expires_spec.rb +7 -0
  55. data/spec/juno/simple_lruhash_spec.rb +7 -0
  56. data/spec/juno/simple_lruhash_with_expires_spec.rb +7 -0
  57. data/spec/juno/simple_memcached_dalli_spec.rb +7 -0
  58. data/spec/juno/simple_memcached_native_spec.rb +7 -0
  59. data/spec/juno/simple_memcached_spec.rb +7 -0
  60. data/spec/juno/simple_memory_spec.rb +7 -0
  61. data/spec/juno/simple_memory_with_compress_spec.rb +7 -0
  62. data/spec/juno/simple_memory_with_expires_spec.rb +7 -0
  63. data/spec/juno/simple_memory_with_json_key_serializer_spec.rb +4 -0
  64. data/spec/juno/simple_memory_with_json_md5_key_serializer_spec.rb +4 -0
  65. data/spec/juno/simple_memory_with_prefix_spec.rb +7 -0
  66. data/spec/juno/simple_memory_with_quicklz_compress_spec.rb +7 -0
  67. data/spec/juno/simple_mongo_spec.rb +7 -0
  68. data/spec/juno/simple_mongo_with_expires_spec.rb +7 -0
  69. data/spec/juno/simple_null_spec.rb +3 -0
  70. data/spec/juno/simple_pstore_spec.rb +7 -0
  71. data/spec/juno/simple_pstore_with_expires_spec.rb +7 -0
  72. data/spec/juno/simple_redis_spec.rb +7 -0
  73. data/spec/juno/simple_riak_spec.rb +7 -0
  74. data/spec/juno/simple_riak_with_expires_spec.rb +7 -0
  75. data/spec/juno/simple_sdbm_spec.rb +7 -0
  76. data/spec/juno/simple_sdbm_with_expires_spec.rb +7 -0
  77. data/spec/juno/simple_sequel_spec.rb +7 -0
  78. data/spec/juno/simple_sequel_with_expires_spec.rb +7 -0
  79. data/spec/juno/simple_sqlite_spec.rb +7 -0
  80. data/spec/juno/simple_sqlite_with_expires_spec.rb +7 -0
  81. data/spec/juno/simple_tokyocabinet_spec.rb +7 -0
  82. data/spec/juno/simple_tokyocabinet_with_expires_spec.rb +7 -0
  83. data/spec/juno/simple_yaml_spec.rb +6 -0
  84. data/spec/juno/simple_yaml_with_expires_spec.rb +6 -0
  85. data/spec/juno/transformer_bzip2_spec.rb +22 -0
  86. data/spec/juno/transformer_marshal_base64_spec.rb +7 -0
  87. data/spec/juno/transformer_marshal_escape_spec.rb +7 -0
  88. data/spec/juno/transformer_marshal_hmac_spec.rb +7 -0
  89. data/spec/juno/transformer_marshal_md5_spec.rb +7 -0
  90. data/spec/juno/transformer_marshal_md5_spread_spec.rb +7 -0
  91. data/spec/juno/transformer_marshal_prefix_spec.rb +7 -0
  92. data/spec/juno/transformer_marshal_rmd160_spec.rb +7 -0
  93. data/spec/juno/transformer_marshal_sha1_spec.rb +7 -0
  94. data/spec/juno/transformer_marshal_sha256_spec.rb +7 -0
  95. data/spec/juno/transformer_marshal_sha384_spec.rb +7 -0
  96. data/spec/juno/transformer_marshal_sha512_spec.rb +7 -0
  97. data/spec/juno/transformer_marshal_uuencode_spec.rb +7 -0
  98. data/spec/juno/transformer_ox_spec.rb +6 -0
  99. data/spec/juno/transformer_yaml_spec.rb +6 -0
  100. data/spec/junospecs.rb +990 -320
  101. metadata +11 -2
data/spec/generate.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  ADAPTER_SPECS = [:null_stringkey_stringvalue, :store_stringkey_stringvalue, :returndifferent_stringkey_stringvalue]
2
- SIMPLE_SPECS = [:null, :store, :returndifferent, :marshallable_key]
2
+ SIMPLE_SPECS = [:null, :store, :returndifferent, :marshallable_key, :marshallable_value]
3
3
  EXPIRES_SPECS = SIMPLE_SPECS + [:expires_stringkey_stringvalue]
4
4
  header = "# Generated by #{__FILE__}\n"
5
5
 
@@ -43,6 +43,7 @@ TESTS = {
43
43
  :store => :Memory,
44
44
  :options => ':value_serializer => :json',
45
45
  :value => %w(Hash String),
46
+ :specs => [:null, :store, :returndifferent, :marshallable_key],
46
47
  },
47
48
  'simple_memory_with_quicklz_compress' => {
48
49
  :store => :Memory,
@@ -79,6 +80,15 @@ TESTS = {
79
80
  :options => ':keyspace => "simple_cassandra"',
80
81
  :specs => EXPIRES_SPECS,
81
82
  },
83
+ 'simple_hbase' => {
84
+ :store => :HBase,
85
+ :options => ':table => "simple_hbase"',
86
+ },
87
+ 'simple_hbase_with_expires' => {
88
+ :store => :HBase,
89
+ :options => ':table => "simple_hbase", :expires => true',
90
+ :specs => EXPIRES_SPECS,
91
+ },
82
92
  'simple_dbm' => {
83
93
  :store => :DBM,
84
94
  :options => ':file => File.join(make_tempdir, "simple_dbm")'
@@ -126,12 +136,13 @@ TESTS = {
126
136
  },
127
137
  'simple_yaml' => {
128
138
  :store => :YAML,
129
- :options => ':file => File.join(make_tempdir, "simple_yaml")'
139
+ :options => ':file => File.join(make_tempdir, "simple_yaml")',
140
+ :specs => [:null, :store, :returndifferent, :marshallable_key],
130
141
  },
131
142
  'simple_yaml_with_expires' => {
132
143
  :store => :YAML,
133
144
  :options => ':file => File.join(make_tempdir, "simple_yaml_with_expires"), :expires => true',
134
- :specs => EXPIRES_SPECS
145
+ :specs => [:null, :store, :returndifferent, :marshallable_key, :expires_stringkey_stringvalue],
135
146
  },
136
147
  'simple_localmemcache' => {
137
148
  :store => :LocalMemCache,
@@ -382,6 +393,14 @@ end},
382
393
  :build => %{Juno.build do
383
394
  use :Transformer, :value => :zlib
384
395
  adapter :Memory
396
+ end},
397
+ :value => %w(String),
398
+ :specs => [:null, :store, :returndifferent]
399
+ },
400
+ 'transformer_bzip2' => {
401
+ :build => %{Juno.build do
402
+ use :Transformer, :value => :bzip2
403
+ adapter :Memory
385
404
  end},
386
405
  :value => %w(String),
387
406
  :specs => [:null, :store, :returndifferent]
@@ -593,6 +612,10 @@ end
593
612
  :build => "Juno::Adapters::Cassandra.new(:keyspace => 'adapter_cassandra')",
594
613
  :specs => ADAPTER_SPECS
595
614
  },
615
+ 'adapter_hbase' => {
616
+ :build => "Juno::Adapters::HBase.new(:table => 'adapter_hbase')",
617
+ :specs => ADAPTER_SPECS
618
+ },
596
619
  'adapter_cookie' => {
597
620
  :build => 'Juno::Adapters::Cookie.new',
598
621
  :specs => ADAPTER_SPECS
@@ -605,9 +628,7 @@ end
605
628
  :build => 'Juno::Adapters::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/adapter_datamapper")',
606
629
  # DataMapper needs default repository to be setup
607
630
  :preamble => "require 'dm-core'\nDataMapper.setup(:default, :adapter => :in_memory)\n",
608
- :specs => ADAPTER_SPECS + [:returndifferent_stringkey_objectvalue,
609
- :null_stringkey_objectvalue,
610
- :store_stringkey_objectvalue],
631
+ :specs => ADAPTER_SPECS,
611
632
  :tests => %q{
612
633
  it 'does not cross contaminate when storing' do
613
634
  first = Juno::Adapters::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/datamapper-first")
@@ -682,7 +703,21 @@ end
682
703
  },
683
704
  'adapter_lruhash' => {
684
705
  :build => 'Juno::Adapters::LRUHash.new',
685
- :specs => [:null, :store]
706
+ :specs => ADAPTER_SPECS,
707
+ :tests => %{
708
+ it 'should delete oldest' do
709
+ store = Juno::Adapters::LRUHash.new(:max_size => 10)
710
+ store[0] = 'y'
711
+ (1..1000).each do |i|
712
+ store[i] = 'x'
713
+ store[0].should == 'y'
714
+ store.instance_variable_get(:@entry).size.should == [10, i+1].min
715
+ (0...[9, i-1].min).each do |j|
716
+ store.instance_variable_get(:@entry)[i-j].should_not be_nil
717
+ end
718
+ store.key?(i-9).should be_false if i > 9
719
+ end
720
+ end}
686
721
  },
687
722
  'adapter_mongo' => {
688
723
  :build => 'Juno::Adapters::Mongo.new(:db => "adapter_mongo")',
@@ -746,9 +781,10 @@ KEYS = {
746
781
  }
747
782
 
748
783
  VALUES = {
784
+ 'Boolean' => [true, false],
749
785
  'String' => ['strval1', 'strval2'].map(&:inspect),
786
+ 'Hash' => [{'hashval1' => ['array1', 1]}, {'hashval3' => ['array2', {'hashval4' => 42}]}].map(&:inspect),
750
787
  'Object' => ['Value.new(:objval1)', 'Value.new(:objval2)'],
751
- 'Hash' => [{'hashval1' => 'hashval2'}, {'hashval3' => 'hashval4'}].map(&:inspect)
752
788
  }
753
789
 
754
790
  KEYS.each do |key_type, (key1,key2)|
@@ -813,6 +849,8 @@ end
813
849
  it "returns true from key? if a #{key_type} key is available" do
814
850
  store[#{key1}] = #{val1}
815
851
  store.key?(#{key1}).should == true
852
+ store[#{key2}] = #{val2}
853
+ store.key?(#{key2}).should == true
816
854
  end
817
855
 
818
856
  it "stores #{val_type} values with #{key_type} keys with #store" do
@@ -853,7 +891,9 @@ end}
853
891
  store[#{key1}] = #{val1}
854
892
  store[#{key1}].should_not be_equal(#{val1})
855
893
  end}
856
- SPECS["returndifferent_#{key_type.downcase}key_#{val_type.downcase}value"] = code
894
+ if val_type != 'Boolean'
895
+ SPECS["returndifferent_#{key_type.downcase}key_#{val_type.downcase}value"] = code
896
+ end
857
897
 
858
898
  code = %{it 'should support expires on store and #[]' do
859
899
  store.store(#{key1}, #{val1}, :expires => 2)
@@ -894,6 +934,18 @@ it 'should support updating the expiration time in load' do
894
934
  store[#{key2}].should == nil
895
935
  end
896
936
 
937
+ it 'should support updating the expiration time in key?' do
938
+ store.store(#{key2}, #{val2}, :expires => 2)
939
+ store[#{key2}].should == #{val2}
940
+ sleep 1
941
+ store.key?(#{key2}, :expires => 3).should be_true
942
+ store[#{key2}].should == #{val2}
943
+ sleep 1
944
+ store[#{key2}].should == #{val2}
945
+ sleep 3
946
+ store[#{key2}].should == nil
947
+ end
948
+
897
949
  it 'should support updating the expiration time in fetch' do
898
950
  store.store(#{key1}, #{val1}, :expires => 2)
899
951
  store[#{key1}].should == #{val1}
@@ -919,48 +971,54 @@ end}
919
971
  end
920
972
  end
921
973
 
922
- SPECS["marshallable_key"] = %{it "refuses to #[] from keys that cannot be marshalled" do
974
+ SPECS['marshallable_key'] = %{it 'refuses to #[] from keys that cannot be marshalled' do
923
975
  expect do
924
976
  store[Struct.new(:foo).new(:bar)]
925
977
  end.to raise_error(marshal_error)
926
978
  end
927
979
 
928
- it "refuses to load from keys that cannot be marshalled" do
980
+ it 'refuses to load from keys that cannot be marshalled' do
929
981
  expect do
930
982
  store.load(Struct.new(:foo).new(:bar))
931
983
  end.to raise_error(marshal_error)
932
984
  end
933
985
 
934
- it "refuses to fetch from keys that cannot be marshalled" do
986
+ it 'refuses to fetch from keys that cannot be marshalled' do
935
987
  expect do
936
988
  store.fetch(Struct.new(:foo).new(:bar), true)
937
989
  end.to raise_error(marshal_error)
938
990
  end
939
991
 
940
- it "refuses to #[]= to keys that cannot be marshalled" do
992
+ it 'refuses to #[]= to keys that cannot be marshalled' do
941
993
  expect do
942
994
  store[Struct.new(:foo).new(:bar)] = 'value'
943
995
  end.to raise_error(marshal_error)
944
996
  end
945
997
 
946
- it "refuses to store to keys that cannot be marshalled" do
998
+ it 'refuses to store to keys that cannot be marshalled' do
947
999
  expect do
948
1000
  store.store Struct.new(:foo).new(:bar), 'value'
949
1001
  end.to raise_error(marshal_error)
950
1002
  end
951
1003
 
952
- it "refuses to check for key? if the key cannot be marshalled" do
1004
+ it 'refuses to check for key? if the key cannot be marshalled' do
953
1005
  expect do
954
1006
  store.key? Struct.new(:foo).new(:bar)
955
1007
  end.to raise_error(marshal_error)
956
1008
  end
957
1009
 
958
- it "refuses to delete a key if the key cannot be marshalled" do
1010
+ it 'refuses to delete a key if the key cannot be marshalled' do
959
1011
  expect do
960
1012
  store.delete Struct.new(:foo).new(:bar)
961
1013
  end.to raise_error(marshal_error)
962
1014
  end}
963
1015
 
1016
+ SPECS['marshallable_value'] = %{it 'refuses to store values that cannot be marshalled' do
1017
+ expect do
1018
+ store.store 'key', Struct.new(:foo).new(:bar)
1019
+ end.to raise_error(marshal_error)
1020
+ end}
1021
+
964
1022
  specs_code = "#{header}\n"
965
1023
  SPECS.each do |key, code|
966
1024
  specs_code << "#################### #{key} ####################\n\n" <<
@@ -973,7 +1031,7 @@ TESTS.each do |name, options|
973
1031
  build = options.delete(:build)
974
1032
  store = options.delete(:store)
975
1033
  key = [options.delete(:key) || %w(Object String Hash)].flatten
976
- value = [options.delete(:value) || %w(Object String Hash)].flatten
1034
+ value = [options.delete(:value) || %w(Object String Hash Boolean)].flatten
977
1035
 
978
1036
  specs = [options.delete(:specs) || SIMPLE_SPECS].flatten
979
1037
  specs_code = []
@@ -12,9 +12,6 @@ describe_juno "adapter_datamapper" do
12
12
  it_should_behave_like 'null_stringkey_stringvalue'
13
13
  it_should_behave_like 'store_stringkey_stringvalue'
14
14
  it_should_behave_like 'returndifferent_stringkey_stringvalue'
15
- it_should_behave_like 'returndifferent_stringkey_objectvalue'
16
- it_should_behave_like 'null_stringkey_objectvalue'
17
- it_should_behave_like 'store_stringkey_objectvalue'
18
15
  it 'does not cross contaminate when storing' do
19
16
  first = Juno::Adapters::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/datamapper-first")
20
17
  first.clear
@@ -0,0 +1,13 @@
1
+ # Generated by generate.rb
2
+ require 'helper'
3
+
4
+ describe_juno "adapter_hbase" do
5
+ def new_store
6
+ Juno::Adapters::HBase.new(:table => 'adapter_hbase')
7
+ end
8
+
9
+ include_context 'setup_store'
10
+ it_should_behave_like 'null_stringkey_stringvalue'
11
+ it_should_behave_like 'store_stringkey_stringvalue'
12
+ it_should_behave_like 'returndifferent_stringkey_stringvalue'
13
+ end
@@ -7,22 +7,20 @@ describe_juno "adapter_lruhash" do
7
7
  end
8
8
 
9
9
  include_context 'setup_store'
10
- it_should_behave_like 'null_objectkey_objectvalue'
11
- it_should_behave_like 'null_objectkey_stringvalue'
12
- it_should_behave_like 'null_objectkey_hashvalue'
13
- it_should_behave_like 'null_stringkey_objectvalue'
14
10
  it_should_behave_like 'null_stringkey_stringvalue'
15
- it_should_behave_like 'null_stringkey_hashvalue'
16
- it_should_behave_like 'null_hashkey_objectvalue'
17
- it_should_behave_like 'null_hashkey_stringvalue'
18
- it_should_behave_like 'null_hashkey_hashvalue'
19
- it_should_behave_like 'store_objectkey_objectvalue'
20
- it_should_behave_like 'store_objectkey_stringvalue'
21
- it_should_behave_like 'store_objectkey_hashvalue'
22
- it_should_behave_like 'store_stringkey_objectvalue'
23
11
  it_should_behave_like 'store_stringkey_stringvalue'
24
- it_should_behave_like 'store_stringkey_hashvalue'
25
- it_should_behave_like 'store_hashkey_objectvalue'
26
- it_should_behave_like 'store_hashkey_stringvalue'
27
- it_should_behave_like 'store_hashkey_hashvalue'
12
+ it_should_behave_like 'returndifferent_stringkey_stringvalue'
13
+ it 'should delete oldest' do
14
+ store = Juno::Adapters::LRUHash.new(:max_size => 10)
15
+ store[0] = 'y'
16
+ (1..1000).each do |i|
17
+ store[i] = 'x'
18
+ store[0].should == 'y'
19
+ store.instance_variable_get(:@entry).size.should == [10, i+1].min
20
+ (0...[9, i-1].min).each do |j|
21
+ store.instance_variable_get(:@entry)[i-j].should_not be_nil
22
+ end
23
+ store.key?(i-9).should be_false if i > 9
24
+ end
25
+ end
28
26
  end
@@ -10,19 +10,25 @@ describe_juno "adapter_memory" do
10
10
  it_should_behave_like 'null_objectkey_objectvalue'
11
11
  it_should_behave_like 'null_objectkey_stringvalue'
12
12
  it_should_behave_like 'null_objectkey_hashvalue'
13
+ it_should_behave_like 'null_objectkey_booleanvalue'
13
14
  it_should_behave_like 'null_stringkey_objectvalue'
14
15
  it_should_behave_like 'null_stringkey_stringvalue'
15
16
  it_should_behave_like 'null_stringkey_hashvalue'
17
+ it_should_behave_like 'null_stringkey_booleanvalue'
16
18
  it_should_behave_like 'null_hashkey_objectvalue'
17
19
  it_should_behave_like 'null_hashkey_stringvalue'
18
20
  it_should_behave_like 'null_hashkey_hashvalue'
21
+ it_should_behave_like 'null_hashkey_booleanvalue'
19
22
  it_should_behave_like 'store_objectkey_objectvalue'
20
23
  it_should_behave_like 'store_objectkey_stringvalue'
21
24
  it_should_behave_like 'store_objectkey_hashvalue'
25
+ it_should_behave_like 'store_objectkey_booleanvalue'
22
26
  it_should_behave_like 'store_stringkey_objectvalue'
23
27
  it_should_behave_like 'store_stringkey_stringvalue'
24
28
  it_should_behave_like 'store_stringkey_hashvalue'
29
+ it_should_behave_like 'store_stringkey_booleanvalue'
25
30
  it_should_behave_like 'store_hashkey_objectvalue'
26
31
  it_should_behave_like 'store_hashkey_stringvalue'
27
32
  it_should_behave_like 'store_hashkey_hashvalue'
33
+ it_should_behave_like 'store_hashkey_booleanvalue'
28
34
  end
@@ -14,30 +14,39 @@ describe_juno "expires_file" do
14
14
  it_should_behave_like 'null_objectkey_objectvalue'
15
15
  it_should_behave_like 'null_objectkey_stringvalue'
16
16
  it_should_behave_like 'null_objectkey_hashvalue'
17
+ it_should_behave_like 'null_objectkey_booleanvalue'
17
18
  it_should_behave_like 'null_stringkey_objectvalue'
18
19
  it_should_behave_like 'null_stringkey_stringvalue'
19
20
  it_should_behave_like 'null_stringkey_hashvalue'
21
+ it_should_behave_like 'null_stringkey_booleanvalue'
20
22
  it_should_behave_like 'null_hashkey_objectvalue'
21
23
  it_should_behave_like 'null_hashkey_stringvalue'
22
24
  it_should_behave_like 'null_hashkey_hashvalue'
25
+ it_should_behave_like 'null_hashkey_booleanvalue'
23
26
  it_should_behave_like 'store_objectkey_objectvalue'
24
27
  it_should_behave_like 'store_objectkey_stringvalue'
25
28
  it_should_behave_like 'store_objectkey_hashvalue'
29
+ it_should_behave_like 'store_objectkey_booleanvalue'
26
30
  it_should_behave_like 'store_stringkey_objectvalue'
27
31
  it_should_behave_like 'store_stringkey_stringvalue'
28
32
  it_should_behave_like 'store_stringkey_hashvalue'
33
+ it_should_behave_like 'store_stringkey_booleanvalue'
29
34
  it_should_behave_like 'store_hashkey_objectvalue'
30
35
  it_should_behave_like 'store_hashkey_stringvalue'
31
36
  it_should_behave_like 'store_hashkey_hashvalue'
37
+ it_should_behave_like 'store_hashkey_booleanvalue'
32
38
  it_should_behave_like 'expires_objectkey_objectvalue'
33
39
  it_should_behave_like 'expires_objectkey_stringvalue'
34
40
  it_should_behave_like 'expires_objectkey_hashvalue'
41
+ it_should_behave_like 'expires_objectkey_booleanvalue'
35
42
  it_should_behave_like 'expires_stringkey_objectvalue'
36
43
  it_should_behave_like 'expires_stringkey_stringvalue'
37
44
  it_should_behave_like 'expires_stringkey_hashvalue'
45
+ it_should_behave_like 'expires_stringkey_booleanvalue'
38
46
  it_should_behave_like 'expires_hashkey_objectvalue'
39
47
  it_should_behave_like 'expires_hashkey_stringvalue'
40
48
  it_should_behave_like 'expires_hashkey_hashvalue'
49
+ it_should_behave_like 'expires_hashkey_booleanvalue'
41
50
  it_should_behave_like 'returndifferent_objectkey_objectvalue'
42
51
  it_should_behave_like 'returndifferent_objectkey_stringvalue'
43
52
  it_should_behave_like 'returndifferent_objectkey_hashvalue'
@@ -13,28 +13,37 @@ describe_juno "expires_memory" do
13
13
  it_should_behave_like 'null_objectkey_objectvalue'
14
14
  it_should_behave_like 'null_objectkey_stringvalue'
15
15
  it_should_behave_like 'null_objectkey_hashvalue'
16
+ it_should_behave_like 'null_objectkey_booleanvalue'
16
17
  it_should_behave_like 'null_stringkey_objectvalue'
17
18
  it_should_behave_like 'null_stringkey_stringvalue'
18
19
  it_should_behave_like 'null_stringkey_hashvalue'
20
+ it_should_behave_like 'null_stringkey_booleanvalue'
19
21
  it_should_behave_like 'null_hashkey_objectvalue'
20
22
  it_should_behave_like 'null_hashkey_stringvalue'
21
23
  it_should_behave_like 'null_hashkey_hashvalue'
24
+ it_should_behave_like 'null_hashkey_booleanvalue'
22
25
  it_should_behave_like 'store_objectkey_objectvalue'
23
26
  it_should_behave_like 'store_objectkey_stringvalue'
24
27
  it_should_behave_like 'store_objectkey_hashvalue'
28
+ it_should_behave_like 'store_objectkey_booleanvalue'
25
29
  it_should_behave_like 'store_stringkey_objectvalue'
26
30
  it_should_behave_like 'store_stringkey_stringvalue'
27
31
  it_should_behave_like 'store_stringkey_hashvalue'
32
+ it_should_behave_like 'store_stringkey_booleanvalue'
28
33
  it_should_behave_like 'store_hashkey_objectvalue'
29
34
  it_should_behave_like 'store_hashkey_stringvalue'
30
35
  it_should_behave_like 'store_hashkey_hashvalue'
36
+ it_should_behave_like 'store_hashkey_booleanvalue'
31
37
  it_should_behave_like 'expires_objectkey_objectvalue'
32
38
  it_should_behave_like 'expires_objectkey_stringvalue'
33
39
  it_should_behave_like 'expires_objectkey_hashvalue'
40
+ it_should_behave_like 'expires_objectkey_booleanvalue'
34
41
  it_should_behave_like 'expires_stringkey_objectvalue'
35
42
  it_should_behave_like 'expires_stringkey_stringvalue'
36
43
  it_should_behave_like 'expires_stringkey_hashvalue'
44
+ it_should_behave_like 'expires_stringkey_booleanvalue'
37
45
  it_should_behave_like 'expires_hashkey_objectvalue'
38
46
  it_should_behave_like 'expires_hashkey_stringvalue'
39
47
  it_should_behave_like 'expires_hashkey_hashvalue'
48
+ it_should_behave_like 'expires_hashkey_booleanvalue'
40
49
  end
@@ -13,19 +13,25 @@ describe_juno "lock" do
13
13
  it_should_behave_like 'null_objectkey_objectvalue'
14
14
  it_should_behave_like 'null_objectkey_stringvalue'
15
15
  it_should_behave_like 'null_objectkey_hashvalue'
16
+ it_should_behave_like 'null_objectkey_booleanvalue'
16
17
  it_should_behave_like 'null_stringkey_objectvalue'
17
18
  it_should_behave_like 'null_stringkey_stringvalue'
18
19
  it_should_behave_like 'null_stringkey_hashvalue'
20
+ it_should_behave_like 'null_stringkey_booleanvalue'
19
21
  it_should_behave_like 'null_hashkey_objectvalue'
20
22
  it_should_behave_like 'null_hashkey_stringvalue'
21
23
  it_should_behave_like 'null_hashkey_hashvalue'
24
+ it_should_behave_like 'null_hashkey_booleanvalue'
22
25
  it_should_behave_like 'store_objectkey_objectvalue'
23
26
  it_should_behave_like 'store_objectkey_stringvalue'
24
27
  it_should_behave_like 'store_objectkey_hashvalue'
28
+ it_should_behave_like 'store_objectkey_booleanvalue'
25
29
  it_should_behave_like 'store_stringkey_objectvalue'
26
30
  it_should_behave_like 'store_stringkey_stringvalue'
27
31
  it_should_behave_like 'store_stringkey_hashvalue'
32
+ it_should_behave_like 'store_stringkey_booleanvalue'
28
33
  it_should_behave_like 'store_hashkey_objectvalue'
29
34
  it_should_behave_like 'store_hashkey_stringvalue'
30
35
  it_should_behave_like 'store_hashkey_hashvalue'
36
+ it_should_behave_like 'store_hashkey_booleanvalue'
31
37
  end
@@ -10,10 +10,13 @@ describe_juno "null_adapter" do
10
10
  it_should_behave_like 'null_objectkey_objectvalue'
11
11
  it_should_behave_like 'null_objectkey_stringvalue'
12
12
  it_should_behave_like 'null_objectkey_hashvalue'
13
+ it_should_behave_like 'null_objectkey_booleanvalue'
13
14
  it_should_behave_like 'null_stringkey_objectvalue'
14
15
  it_should_behave_like 'null_stringkey_stringvalue'
15
16
  it_should_behave_like 'null_stringkey_hashvalue'
17
+ it_should_behave_like 'null_stringkey_booleanvalue'
16
18
  it_should_behave_like 'null_hashkey_objectvalue'
17
19
  it_should_behave_like 'null_hashkey_stringvalue'
18
20
  it_should_behave_like 'null_hashkey_hashvalue'
21
+ it_should_behave_like 'null_hashkey_booleanvalue'
19
22
  end
@@ -15,28 +15,37 @@ describe_juno "proxy_expires_memory" do
15
15
  it_should_behave_like 'null_objectkey_objectvalue'
16
16
  it_should_behave_like 'null_objectkey_stringvalue'
17
17
  it_should_behave_like 'null_objectkey_hashvalue'
18
+ it_should_behave_like 'null_objectkey_booleanvalue'
18
19
  it_should_behave_like 'null_stringkey_objectvalue'
19
20
  it_should_behave_like 'null_stringkey_stringvalue'
20
21
  it_should_behave_like 'null_stringkey_hashvalue'
22
+ it_should_behave_like 'null_stringkey_booleanvalue'
21
23
  it_should_behave_like 'null_hashkey_objectvalue'
22
24
  it_should_behave_like 'null_hashkey_stringvalue'
23
25
  it_should_behave_like 'null_hashkey_hashvalue'
26
+ it_should_behave_like 'null_hashkey_booleanvalue'
24
27
  it_should_behave_like 'store_objectkey_objectvalue'
25
28
  it_should_behave_like 'store_objectkey_stringvalue'
26
29
  it_should_behave_like 'store_objectkey_hashvalue'
30
+ it_should_behave_like 'store_objectkey_booleanvalue'
27
31
  it_should_behave_like 'store_stringkey_objectvalue'
28
32
  it_should_behave_like 'store_stringkey_stringvalue'
29
33
  it_should_behave_like 'store_stringkey_hashvalue'
34
+ it_should_behave_like 'store_stringkey_booleanvalue'
30
35
  it_should_behave_like 'store_hashkey_objectvalue'
31
36
  it_should_behave_like 'store_hashkey_stringvalue'
32
37
  it_should_behave_like 'store_hashkey_hashvalue'
38
+ it_should_behave_like 'store_hashkey_booleanvalue'
33
39
  it_should_behave_like 'expires_objectkey_objectvalue'
34
40
  it_should_behave_like 'expires_objectkey_stringvalue'
35
41
  it_should_behave_like 'expires_objectkey_hashvalue'
42
+ it_should_behave_like 'expires_objectkey_booleanvalue'
36
43
  it_should_behave_like 'expires_stringkey_objectvalue'
37
44
  it_should_behave_like 'expires_stringkey_stringvalue'
38
45
  it_should_behave_like 'expires_stringkey_hashvalue'
46
+ it_should_behave_like 'expires_stringkey_booleanvalue'
39
47
  it_should_behave_like 'expires_hashkey_objectvalue'
40
48
  it_should_behave_like 'expires_hashkey_stringvalue'
41
49
  it_should_behave_like 'expires_hashkey_hashvalue'
50
+ it_should_behave_like 'expires_hashkey_booleanvalue'
42
51
  end