semian 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,32 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TestSemian < Minitest::Test
4
- def setup
5
- Semian.destroy(:testing)
6
- rescue
7
- nil
8
- end
9
-
10
- def test_unsupported_acquire_yields
11
- acquired = false
12
- Semian.register :testing, tickets: 1, error_threshold: 1, error_timeout: 2, success_threshold: 1
13
- Semian[:testing].acquire { acquired = true }
14
- assert acquired
15
- end
16
-
17
- def test_unsuported_constants
18
- assert defined?(Semian::BaseError)
19
- assert defined?(Semian::SyscallError)
20
- assert defined?(Semian::TimeoutError)
21
- assert defined?(Semian::InternalError)
22
- assert defined?(Semian::Resource)
23
- end
24
-
25
- def test_disabled_via_env_var
26
- ENV['SEMIAN_SEMAPHORES_DISABLED'] = '1'
27
-
28
- refute Semian.semaphores_enabled?
29
- ensure
30
- ENV.delete('SEMIAN_SEMAPHORES_DISABLED')
31
- end
32
- end
@@ -1,49 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TestSimpleInteger < Minitest::Test
4
- CLASS = ::Semian::Simple::Integer
5
-
6
- def setup
7
- @integer = CLASS.new
8
- end
9
-
10
- def teardown
11
- @integer.destroy
12
- end
13
-
14
- module IntegerTestCases
15
- def test_access_value
16
- assert_equal(0, @integer.value)
17
- @integer.value = 99
18
- assert_equal(99, @integer.value)
19
- time_now = (Time.now).to_i
20
- @integer.value = time_now
21
- assert_equal(time_now, @integer.value)
22
- @integer.value = 6
23
- assert_equal(6, @integer.value)
24
- @integer.value = 6
25
- assert_equal(6, @integer.value)
26
- end
27
-
28
- def test_increment
29
- @integer.increment(4)
30
- assert_equal(4, @integer.value)
31
- @integer.increment
32
- assert_equal(5, @integer.value)
33
- @integer.increment(-2)
34
- assert_equal(3, @integer.value)
35
- end
36
-
37
- def test_reset_on_init
38
- assert_equal(0, @integer.value)
39
- end
40
-
41
- def test_reset
42
- @integer.increment(5)
43
- @integer.reset
44
- assert_equal(0, @integer.value)
45
- end
46
- end
47
-
48
- include IntegerTestCases
49
- end
@@ -1,65 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TestSimpleSlidingWindow < Minitest::Test
4
- CLASS = ::Semian::Simple::SlidingWindow
5
-
6
- def setup
7
- @sliding_window = CLASS.new(max_size: 6)
8
- @sliding_window.clear
9
- end
10
-
11
- def teardown
12
- @sliding_window.destroy
13
- end
14
-
15
- module SlidingWindowTestCases
16
- def test_sliding_window_push
17
- assert_equal(0, @sliding_window.size)
18
- @sliding_window << 1
19
- assert_sliding_window(@sliding_window, [1], 6)
20
- @sliding_window << 5
21
- assert_sliding_window(@sliding_window, [1, 5], 6)
22
- end
23
-
24
- def test_sliding_window_resize
25
- assert_equal(0, @sliding_window.size)
26
- @sliding_window << 1 << 2 << 3 << 4 << 5 << 6
27
- assert_sliding_window(@sliding_window, [1, 2, 3, 4, 5, 6], 6)
28
- @sliding_window.resize_to 6
29
- assert_sliding_window(@sliding_window, [1, 2, 3, 4, 5, 6], 6)
30
- @sliding_window.resize_to 5
31
- assert_sliding_window(@sliding_window, [2, 3, 4, 5, 6], 5)
32
- @sliding_window.resize_to 6
33
- assert_sliding_window(@sliding_window, [2, 3, 4, 5, 6], 6)
34
- end
35
-
36
- def test_sliding_window_edge_falloff
37
- assert_equal(0, @sliding_window.size)
38
- @sliding_window << 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7
39
- assert_sliding_window(@sliding_window, [2, 3, 4, 5, 6, 7], 6)
40
- @sliding_window.shift
41
- assert_sliding_window(@sliding_window, [3, 4, 5, 6, 7], 6)
42
- end
43
-
44
- def resize_to_less_than_1_raises
45
- assert_raises ArgumentError do
46
- @sliding_window.resize_to 0
47
- end
48
- end
49
- end
50
-
51
- module SlidingWindowUtilityMethods
52
- def assert_sliding_window(sliding_window, array, max_size)
53
- # Get private member, the sliding_window doesn't expose the entire array
54
- data = sliding_window.instance_variable_get("@window")
55
- assert_equal(array, data)
56
- assert_equal(max_size, sliding_window.max_size)
57
- end
58
- end
59
-
60
- include SlidingWindowTestCases
61
-
62
- private
63
-
64
- include SlidingWindowUtilityMethods
65
- end
@@ -1,45 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TestSimpleEnum < Minitest::Test
4
- CLASS = ::Semian::Simple::State
5
-
6
- def setup
7
- @state = CLASS.new
8
- end
9
-
10
- def teardown
11
- @state.destroy
12
- end
13
-
14
- module StateTestCases
15
- def test_start_closed?
16
- assert @state.closed?
17
- end
18
-
19
- def test_open
20
- @state.open
21
- assert @state.open?
22
- assert_equal @state.value, :open
23
- end
24
-
25
- def test_close
26
- @state.close
27
- assert @state.closed?
28
- assert_equal @state.value, :closed
29
- end
30
-
31
- def test_half_open
32
- @state.half_open
33
- assert @state.half_open?
34
- assert_equal @state.value, :half_open
35
- end
36
-
37
- def test_reset
38
- @state.reset
39
- assert @state.closed?
40
- assert_equal @state.value, :closed
41
- end
42
- end
43
-
44
- include StateTestCases
45
- end
@@ -1,33 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'semian'
3
- require 'semian/mysql2'
4
- require 'semian/redis'
5
- require 'toxiproxy'
6
- require 'timecop'
7
- require 'tempfile'
8
- require 'fileutils'
9
-
10
- require 'helpers/background_helper'
11
-
12
- Semian.logger = Logger.new(nil)
13
- Toxiproxy.populate([
14
- {
15
- name: 'semian_test_mysql',
16
- upstream: 'localhost:3306',
17
- listen: 'localhost:13306',
18
- },
19
- {
20
- name: 'semian_test_redis',
21
- upstream: 'localhost:6379',
22
- listen: 'localhost:16379',
23
- },
24
- {
25
- name: 'semian_test_net_http',
26
- upstream: 'localhost:31050',
27
- listen: 'localhost:31051',
28
- },
29
- ])
30
-
31
- class Minitest::Test
32
- include BackgroundHelper
33
- end
@@ -1,60 +0,0 @@
1
- require 'test_helper'
2
-
3
- class UnprotectedResourceTest < Minitest::Test
4
- def setup
5
- @resource = Semian::UnprotectedResource.new(:foo)
6
- end
7
-
8
- def test_interface_is_the_same
9
- diff = Semian::ProtectedResource.public_instance_methods - Semian::UnprotectedResource.public_instance_methods
10
- assert_equal [], diff
11
- end
12
-
13
- def test_resource_name
14
- assert_equal :foo, @resource.name
15
- end
16
-
17
- def test_resource_tickets
18
- assert_equal(-1, @resource.tickets)
19
- end
20
-
21
- def test_resource_count
22
- assert_equal 0, @resource.count
23
- end
24
-
25
- def test_resource_semid
26
- assert_equal 0, @resource.semid
27
- end
28
-
29
- def test_resource_reset
30
- @resource.reset
31
- end
32
-
33
- def test_resource_destroy
34
- @resource.destroy
35
- end
36
-
37
- def test_resource_acquire
38
- acquired = false
39
- @resource.acquire do
40
- acquired = true
41
- end
42
- assert acquired
43
- end
44
-
45
- def test_resource_acquire_with_timeout
46
- acquired = false
47
- @resource.acquire(timeout: 2) do
48
- acquired = true
49
- end
50
- assert acquired
51
- end
52
-
53
- def test_request_is_allowed
54
- assert @resource.request_allowed?
55
- end
56
-
57
- def test_mark_failed
58
- @resource.mark_failed(:error)
59
- end
60
- end