time_window_drop_collector 0.3.1 → 0.3.2
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.
@@ -2,20 +2,14 @@ require_relative "test_helper"
|
|
2
2
|
|
3
3
|
class MemcacheWrapperTest < Test::Unit::TestCase
|
4
4
|
def test_initialize
|
5
|
-
Dalli::Client.expects( :new ).with( "arg1" ).returns( "client" )
|
5
|
+
Dalli::Client.expects( :new ).with( ["arg1"] ).returns( "client" )
|
6
6
|
wrapper = TimeWindowDropCollector::Wrappers::Memcache.new( ["arg1"] )
|
7
7
|
assert_equal( "client", wrapper.client )
|
8
8
|
end
|
9
9
|
|
10
10
|
def test_incr
|
11
11
|
wrapper = TimeWindowDropCollector::Wrappers::Memcache.new( ["arg1"] )
|
12
|
-
wrapper.client.expects( :incr ).with( "key", 5, "expire_time", 1
|
13
|
-
wrapper.incr( "key", "expire_time", 5 )
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_values_for
|
17
|
-
wrapper = TimeWindowDropCollector::Wrappers::Memcache.new( ["arg1"] )
|
18
|
-
wrapper.client.expects( :get_multi ).with( "keys" ).returns( {:a => 1, :b => 2} )
|
19
|
-
assert_equal( [1, 2], wrapper.values_for( "keys" ))
|
12
|
+
wrapper.client.expects( :incr ).with( "key", 5, "expire_time", 1)
|
13
|
+
wrapper.incr( ["key"], "expire_time", 5 )
|
20
14
|
end
|
21
15
|
end
|
data/test/storage_test.rb
CHANGED
@@ -7,13 +7,13 @@ class StorageTest < Test::Unit::TestCase
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def test_timestamp_key_when_time_is_present
|
10
|
-
timestamp = Time.new(
|
11
|
-
assert_equal(
|
10
|
+
timestamp = Time.new(2001, 2, 3, 4, 5, 0, "+01:00")
|
11
|
+
assert_equal("drop_window_key_981169500000", @storage.timestamp_key("key", timestamp))
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_timestamp_key_when_time_is_not_present
|
15
|
-
@storage.stubs(
|
16
|
-
assert_equal(
|
15
|
+
@storage.stubs(:timestamp).returns(Time.new(2012, 4, 3, 2, 1, 0, "+02:00"))
|
16
|
+
assert_equal("drop_window_key_1333411260000", @storage.timestamp_key("key"))
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_window_keys_should_return_10_keys_for_the_last_10_minutes
|
@@ -30,8 +30,8 @@ class StorageTest < Test::Unit::TestCase
|
|
30
30
|
"drop_window_key_1325560260000"
|
31
31
|
]
|
32
32
|
|
33
|
-
Delorean.time_travel_to(
|
34
|
-
assert_equal(
|
33
|
+
Delorean.time_travel_to('2012-01-03 04:20 +01:00') do
|
34
|
+
assert_equal(keys, @storage.window_keys("key"))
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -57,6 +57,10 @@ class StorageTest < Test::Unit::TestCase
|
|
57
57
|
assert_equal( "grouping_keys_counts", @storage.count( "keys" ))
|
58
58
|
end
|
59
59
|
|
60
|
+
def test_count_with_no_keys
|
61
|
+
assert_equal({}, @storage.count([]))
|
62
|
+
end
|
63
|
+
|
60
64
|
def test_grouping_count
|
61
65
|
key_values = {
|
62
66
|
"drop_window_key1_201201031416" => 1,
|
@@ -122,19 +126,19 @@ class StorageTest < Test::Unit::TestCase
|
|
122
126
|
end
|
123
127
|
|
124
128
|
def test_slice_start_timestamp
|
125
|
-
storage = TimeWindowDropCollector::Storage.new(
|
126
|
-
time = Time.new(
|
127
|
-
|
128
|
-
assert_equal(
|
129
|
-
assert_equal(
|
130
|
-
assert_equal(
|
131
|
-
assert_equal(
|
132
|
-
assert_equal(
|
129
|
+
storage = TimeWindowDropCollector::Storage.new(nil, 100, 10)
|
130
|
+
time = Time.new(2001, 2, 3, 4, 5, 0, '+01:00')
|
131
|
+
|
132
|
+
assert_equal(981169500000, storage.slice_start_timestamp(time))
|
133
|
+
assert_equal(981169500000, storage.slice_start_timestamp(time + 1))
|
134
|
+
assert_equal(981169500000, storage.slice_start_timestamp(time + 9))
|
135
|
+
assert_equal(981169520000, storage.slice_start_timestamp(time + 25))
|
136
|
+
assert_equal(981169600000, storage.slice_start_timestamp(time + 100))
|
133
137
|
end
|
134
138
|
|
135
139
|
def test_slice_start_timestamp_with_slice_sizes_no_integer
|
136
140
|
storage = TimeWindowDropCollector::Storage.new( nil, 100, 12 )
|
137
|
-
time = Time.new( 2001, 2, 3, 4, 5 )
|
141
|
+
time = Time.new( 2001, 2, 3, 4, 5, 0,'+01:00')
|
138
142
|
|
139
143
|
assert_equal( 981169493317, storage.slice_start_timestamp( time ) )
|
140
144
|
assert_equal( 981169493317, storage.slice_start_timestamp( time + 1 ) )
|
@@ -144,14 +148,14 @@ class StorageTest < Test::Unit::TestCase
|
|
144
148
|
end
|
145
149
|
|
146
150
|
def test_slice_start_timestamp_with_slice_size_less_than_a_second
|
147
|
-
storage = TimeWindowDropCollector::Storage.new(
|
148
|
-
time = Time.new( 2001, 2, 3, 4, 5 )
|
149
|
-
|
150
|
-
assert_equal(
|
151
|
-
assert_equal(
|
152
|
-
assert_equal(
|
153
|
-
assert_equal(
|
154
|
-
assert_equal(
|
151
|
+
storage = TimeWindowDropCollector::Storage.new(nil, 100, 101)
|
152
|
+
time = Time.new( 2001, 2, 3, 4, 5, 0, '+01:00')
|
153
|
+
|
154
|
+
assert_equal(981169499970, storage.slice_start_timestamp(time))
|
155
|
+
assert_equal(981169500960, storage.slice_start_timestamp(time + 1))
|
156
|
+
assert_equal(981169508880, storage.slice_start_timestamp(time + 9))
|
157
|
+
assert_equal(981169524720, storage.slice_start_timestamp(time + 25))
|
158
|
+
assert_equal(981169599960, storage.slice_start_timestamp(time + 100))
|
155
159
|
end
|
156
160
|
|
157
161
|
def test_window_size_consistency
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: time_window_drop_collector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,74 +10,104 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2013-10-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
17
|
-
|
18
|
-
|
17
|
+
prerelease: false
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '0'
|
23
|
+
none: false
|
23
24
|
type: :development
|
24
|
-
|
25
|
-
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
none: false
|
26
31
|
- !ruby/object:Gem::Dependency
|
27
32
|
name: rake
|
28
|
-
|
29
|
-
|
33
|
+
prerelease: false
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
30
35
|
requirements:
|
31
|
-
- - =
|
36
|
+
- - '='
|
32
37
|
- !ruby/object:Gem::Version
|
33
38
|
version: 0.9.2.2
|
39
|
+
none: false
|
34
40
|
type: :development
|
35
|
-
|
36
|
-
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - '='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.9.2.2
|
46
|
+
none: false
|
37
47
|
- !ruby/object:Gem::Dependency
|
38
48
|
name: mocha
|
39
|
-
|
40
|
-
|
49
|
+
prerelease: false
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
41
51
|
requirements:
|
42
|
-
- - =
|
52
|
+
- - '='
|
43
53
|
- !ruby/object:Gem::Version
|
44
54
|
version: 0.10.0
|
55
|
+
none: false
|
45
56
|
type: :development
|
46
|
-
|
47
|
-
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.10.0
|
62
|
+
none: false
|
48
63
|
- !ruby/object:Gem::Dependency
|
49
64
|
name: delorean
|
50
|
-
|
51
|
-
|
65
|
+
prerelease: false
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
52
67
|
requirements:
|
53
|
-
- - =
|
68
|
+
- - '='
|
54
69
|
- !ruby/object:Gem::Version
|
55
70
|
version: 1.2.0
|
71
|
+
none: false
|
56
72
|
type: :development
|
57
|
-
|
58
|
-
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.2.0
|
78
|
+
none: false
|
59
79
|
- !ruby/object:Gem::Dependency
|
60
80
|
name: memcache_mock
|
61
|
-
|
62
|
-
|
81
|
+
prerelease: false
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
63
83
|
requirements:
|
64
|
-
- - =
|
84
|
+
- - '='
|
65
85
|
- !ruby/object:Gem::Version
|
66
86
|
version: 0.0.1
|
87
|
+
none: false
|
67
88
|
type: :development
|
68
|
-
|
69
|
-
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - '='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.0.1
|
94
|
+
none: false
|
70
95
|
- !ruby/object:Gem::Dependency
|
71
96
|
name: dalli
|
72
|
-
|
73
|
-
|
97
|
+
prerelease: false
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
74
99
|
requirements:
|
75
100
|
- - ! '>='
|
76
101
|
- !ruby/object:Gem::Version
|
77
102
|
version: '0'
|
103
|
+
none: false
|
78
104
|
type: :runtime
|
79
|
-
|
80
|
-
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
none: false
|
81
111
|
description: Counter storage system for a concrete time window
|
82
112
|
email:
|
83
113
|
- fguillen.mail@gmail.com
|
@@ -122,20 +152,20 @@ rdoc_options: []
|
|
122
152
|
require_paths:
|
123
153
|
- lib
|
124
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
155
|
requirements:
|
127
156
|
- - ! '>='
|
128
157
|
- !ruby/object:Gem::Version
|
129
158
|
version: '0'
|
130
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
159
|
none: false
|
160
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
161
|
requirements:
|
133
162
|
- - ! '>='
|
134
163
|
- !ruby/object:Gem::Version
|
135
164
|
version: '0'
|
165
|
+
none: false
|
136
166
|
requirements: []
|
137
167
|
rubyforge_project: time_window_drop_collector
|
138
|
-
rubygems_version: 1.8.
|
168
|
+
rubygems_version: 1.8.24
|
139
169
|
signing_key:
|
140
170
|
specification_version: 3
|
141
171
|
summary: Counter storage system for a concrete time window
|
@@ -150,3 +180,4 @@ test_files:
|
|
150
180
|
- test/test_helper.rb
|
151
181
|
- test/time_window_drop_collector_test.rb
|
152
182
|
- test/wrapper_test.rb
|
183
|
+
has_rdoc:
|