act_with_flags 0.2.4 → 3.1.1
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.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +9 -3
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/.watchr +29 -16
- data/Appraisals +10 -6
- data/Gemfile +7 -6
- data/Gemfile.lock +133 -105
- data/MIT-LICENSE +1 -1
- data/README.md +118 -9
- data/Rakefile +5 -5
- data/act_with_flags.gemspec +20 -20
- data/gemfiles/rails_6.0.gemfile +2 -1
- data/gemfiles/rails_7.0.gemfile +15 -0
- data/lib/act_with_flags/admin.rb +7 -49
- data/lib/act_with_flags/clear.rb +30 -0
- data/lib/act_with_flags/define.rb +6 -35
- data/lib/act_with_flags/flags.rb +65 -0
- data/lib/act_with_flags/print.rb +23 -28
- data/lib/act_with_flags/utils.rb +41 -13
- data/lib/act_with_flags/version.rb +10 -7
- data/lib/act_with_flags.rb +63 -31
- data/test/any_all_none_test.rb +6 -9
- data/test/benchmark_test.rb +73 -0
- data/test/clear_test.rb +5 -7
- data/test/coding_check_add_test.rb +29 -0
- data/test/coding_coverage_test.rb +19 -0
- data/test/coding_mask2d_test.rb +25 -0
- data/test/coding_null_test.rb +29 -0
- data/test/coding_one_test.rb +26 -0
- data/test/coding_reset_test.rb +18 -0
- data/test/inheritance_any_test.rb +9 -33
- data/test/inheritance_test.rb +7 -10
- data/test/internal/app/controllers/orders_controller.rb +1 -3
- data/test/internal/app/models/order.rb +1 -5
- data/test/internal/config/routes.rb +1 -1
- data/test/internal/db/schema.rb +6 -7
- data/test/legacy_test.rb +8 -9
- data/test/mask_test.rb +6 -7
- data/test/null_test.rb +3 -5
- data/test/one_test.rb +7 -9
- data/test/origin_test.rb +7 -26
- data/test/origins_test.rb +57 -0
- data/test/range2_test.rb +59 -0
- data/test/range3_test.rb +37 -0
- data/test/range_test.rb +89 -0
- data/test/remove_from_test.rb +3 -4
- data/test/test_helper.rb +8 -8
- metadata +23 -41
- data/.rubocop.yml +0 -9
- data/test/internal_benchmark_test.rb +0 -52
- data/test/internal_check_add_test.rb +0 -36
- data/test/internal_null_test.rb +0 -29
- data/test/internal_one_test.rb +0 -27
- data/test/reset_test.rb +0 -17
@@ -0,0 +1,57 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "Several origins" do
|
4
|
+
let(:order) { Order.create }
|
5
|
+
|
6
|
+
def setup
|
7
|
+
reset_order
|
8
|
+
Order.add_to_flags :a # origin is :flags
|
9
|
+
Order.add_to_flags :b, b2: 63 # origin is :flags
|
10
|
+
Order.add_to_flags :c, origin: :origin1
|
11
|
+
Order.add_to_flags d: 3, origin: :origin2
|
12
|
+
Order.add_to_flags :d2, origin: :origin2
|
13
|
+
end
|
14
|
+
|
15
|
+
it "checks flags" do
|
16
|
+
order.a = true
|
17
|
+
order.b = true
|
18
|
+
order.b2 = true
|
19
|
+
assert_equal 0x8000000000000003, order.flags
|
20
|
+
order.b2 = false
|
21
|
+
assert_equal 0x03, order.flags
|
22
|
+
assert_equal 0x01, Order.act_with_flags.mask(:a) # should work
|
23
|
+
assert_equal 0x8000000000000002, Order.act_with_flags.mask(:b, :b2) # should work
|
24
|
+
end
|
25
|
+
|
26
|
+
it "checks origin1" do
|
27
|
+
order.c = true
|
28
|
+
assert_equal 0x01, order.origin1
|
29
|
+
assert_equal 0x01, Order.act_with_flags.mask(:c)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "checks origin2" do
|
33
|
+
order.d = true
|
34
|
+
assert_equal 0x08, order.origin2
|
35
|
+
assert_equal 0x18, Order.act_with_flags.mask(:d2, :d)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should reject mask for different origins" do
|
39
|
+
assert_raises(RuntimeError) {
|
40
|
+
Order.act_with_flags.mask :c, :d
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
it "allows any? et all for same origins" do
|
45
|
+
order.flags_any? :b, :b2
|
46
|
+
order.flags_all? :d2, :d
|
47
|
+
end
|
48
|
+
|
49
|
+
it "rejects any? et all for different origins" do
|
50
|
+
assert_raises(RuntimeError) {
|
51
|
+
order.flags_any? :a, :c
|
52
|
+
}
|
53
|
+
assert_raises(RuntimeError) {
|
54
|
+
order.flags_all? :d2, :c
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
data/test/range2_test.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "range #2" do
|
4
|
+
def setup
|
5
|
+
reset_order
|
6
|
+
end
|
7
|
+
|
8
|
+
it "succeeds specifying just a range" do
|
9
|
+
Order.add_to_flags range: 0...0
|
10
|
+
end
|
11
|
+
|
12
|
+
it "succeeds specifying just a (same) range with an origin" do
|
13
|
+
Order.add_to_flags range: 0..0
|
14
|
+
Order.add_to_flags range: 0..0, origin: :dummy
|
15
|
+
end
|
16
|
+
|
17
|
+
it "rejects more than one range specification" do
|
18
|
+
Order.add_to_flags range: 0..0
|
19
|
+
assert_raises(ArgumentError) { Order.add_to_flags range: 1..1 }
|
20
|
+
end
|
21
|
+
|
22
|
+
it "succeeds validation (pre specification of range)" do
|
23
|
+
Order.add_to_flags range: ..0
|
24
|
+
Order.add_to_flags :a
|
25
|
+
end
|
26
|
+
|
27
|
+
it "succeeds validation (post specification of range)" do
|
28
|
+
Order.add_to_flags :a
|
29
|
+
Order.add_to_flags range: ..0
|
30
|
+
end
|
31
|
+
|
32
|
+
it "fails validation (pre specification of range)" do
|
33
|
+
Order.add_to_flags range: (1..)
|
34
|
+
assert_raises(RangeError) { Order.add_to_flags :a }
|
35
|
+
end
|
36
|
+
|
37
|
+
it "fails validation (post specification of range)" do
|
38
|
+
Order.add_to_flags :b, origin: :hugo
|
39
|
+
Order.add_to_flags :a
|
40
|
+
assert_raises(RangeError) { Order.add_to_flags range: 1.. }
|
41
|
+
end
|
42
|
+
|
43
|
+
it "succeeds validation for two flags (post specification of range)" do
|
44
|
+
Order.add_to_flags :a, :b # bits 0 & 1
|
45
|
+
Order.add_to_flags range: ..1
|
46
|
+
end
|
47
|
+
|
48
|
+
it "rejects validation for two flags (post specification of range)" do
|
49
|
+
Order.add_to_flags :a, :b # bits 0 & 1
|
50
|
+
# :a (bit 0) triggers an exception on the validation of range
|
51
|
+
assert_raises(RangeError) { Order.add_to_flags range: 1.. }
|
52
|
+
end
|
53
|
+
|
54
|
+
it "rejects post validation" do
|
55
|
+
Order.add_to_flags :a, :b # bits 0 & 1
|
56
|
+
# :b (bit 1) triggers an exception on the validation of range
|
57
|
+
assert_raises(RangeError) { Order.add_to_flags range: ..0 }
|
58
|
+
end
|
59
|
+
end
|
data/test/range3_test.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "range #3" do
|
4
|
+
def setup
|
5
|
+
reset_order
|
6
|
+
end
|
7
|
+
|
8
|
+
it "accepts an integer as position" do
|
9
|
+
Order.add_to_flags a: 0
|
10
|
+
Order.add_to_flags b: 1
|
11
|
+
Order.add_to_flags c: 2
|
12
|
+
Order.add_to_flags d: 100
|
13
|
+
|
14
|
+
msk = Order.add_to_flags.mask(:a, :b, :c)
|
15
|
+
assert 0x07, msk
|
16
|
+
|
17
|
+
msk = Order.add_to_flags.mask(:d)
|
18
|
+
assert 0x10000000000000000000000000, msk
|
19
|
+
end
|
20
|
+
|
21
|
+
it "rejects ivalid position" do
|
22
|
+
assert_raises(ArgumentError) { Order.add_to_flags a: -1 }
|
23
|
+
assert_raises(ArgumentError) { Order.add_to_flags a: :a_symbol }
|
24
|
+
end
|
25
|
+
|
26
|
+
[0..0, 0..1, ..0, 1.., 100..100, 0...1, ...1, 1..., ...100].each do |range|
|
27
|
+
it "checks valid range #{range}" do
|
28
|
+
Order.add_to_flags range: range
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
[-1..0, :a..:z, "a".."z"].each do |range|
|
33
|
+
it "rejects invalid range #{range}" do
|
34
|
+
assert_raises(RangeError) { Order.add_to_flags range: range }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/test/range_test.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "range" do
|
4
|
+
def setup
|
5
|
+
reset_order
|
6
|
+
end
|
7
|
+
|
8
|
+
it "runs without range" do
|
9
|
+
Order.add_to_flags :a
|
10
|
+
Order.add_to_flags :b
|
11
|
+
end
|
12
|
+
|
13
|
+
it "runs with range(inside)" do
|
14
|
+
Order.add_to_flags range: 2..4, a: 2
|
15
|
+
Order.add_to_flags range: 2..4, b: 3
|
16
|
+
end
|
17
|
+
|
18
|
+
it "fails with outside range" do
|
19
|
+
assert_raises(RangeError) { Order.add_to_flags range: 2..3, a: 1 }
|
20
|
+
assert_raises(RangeError) { Order.add_to_flags range: 2..3, b: 4 }
|
21
|
+
end
|
22
|
+
|
23
|
+
it "runs at borders" do
|
24
|
+
Order.add_to_flags range: 2..3, a: 2
|
25
|
+
Order.add_to_flags range: 2..3, b: 3
|
26
|
+
end
|
27
|
+
|
28
|
+
it "runs with ... as range" do
|
29
|
+
Order.add_to_flags range: 2...3, a: 2
|
30
|
+
assert_raises(RangeError) { Order.add_to_flags range: 2...3, b: 3 }
|
31
|
+
end
|
32
|
+
|
33
|
+
it "detects wrong range" do
|
34
|
+
assert_raises(RangeError) { Order.add_to_flags range: "a".."z", a: 2 }
|
35
|
+
end
|
36
|
+
|
37
|
+
it "tests range 0..0 no position" do
|
38
|
+
Order.add_to_flags :a, range: 0..0
|
39
|
+
assert_raises(RangeError) { Order.add_to_flags :b, range: 0..0 }
|
40
|
+
end
|
41
|
+
|
42
|
+
it "tests range ..0 no position" do
|
43
|
+
Order.add_to_flags :a, range: ..0
|
44
|
+
assert_raises(RangeError) { Order.add_to_flags :b, range: ..0 }
|
45
|
+
end
|
46
|
+
|
47
|
+
it "tests range ...0 no position" do
|
48
|
+
assert_raises(RangeError) { Order.add_to_flags :a, range: ...0 }
|
49
|
+
end
|
50
|
+
|
51
|
+
# YAGNI
|
52
|
+
# # includes range: ( .. 3 ) equivalent to range: ..3
|
53
|
+
# n = 100
|
54
|
+
# (0..n).each do |i|
|
55
|
+
# rng = ..i
|
56
|
+
#
|
57
|
+
# (0..i).each do |j|
|
58
|
+
# it "tests range ..#{i} with position #{j}" do
|
59
|
+
# Order.add_to_flags a: j, range: rng
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
#
|
63
|
+
# it "fails range ..#{i} with position overflow" do
|
64
|
+
# assert_raises(RangeError) { Order.add_to_flags b: (i + 1), range: rng }
|
65
|
+
# end
|
66
|
+
# end
|
67
|
+
#
|
68
|
+
# it "runs ii plus" do
|
69
|
+
# ii = 0
|
70
|
+
# (0..2).each { |íí|
|
71
|
+
# sym = "x#{ii}".to_sym
|
72
|
+
# j = f(ii, ii + 1) # filler
|
73
|
+
# rand j
|
74
|
+
# Order.add_to_flags :range => ii..f(íí, íí), sym => (ii += 1)
|
75
|
+
# orden = Order.new
|
76
|
+
# refute orden.send("#{sym}?") # checks that accessor is active
|
77
|
+
# orden.x0 = true # checks that first accessor is still there
|
78
|
+
# assert orden.x0?
|
79
|
+
# }
|
80
|
+
# end
|
81
|
+
#
|
82
|
+
# private
|
83
|
+
#
|
84
|
+
# def f(x, y)
|
85
|
+
# return y + 1 if x == 0
|
86
|
+
# return f(x - 1, 1) if y == 0
|
87
|
+
# f(x - 1, f(x, y - 1))
|
88
|
+
# end
|
89
|
+
end
|
data/test/remove_from_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe "Delete from Flags" do
|
4
4
|
let(:order) { Order.create }
|
5
5
|
|
6
6
|
def setup
|
@@ -9,10 +9,9 @@ describe 'Delete from Flags' do
|
|
9
9
|
order.a = order.b = order.c = true
|
10
10
|
end
|
11
11
|
|
12
|
-
it
|
12
|
+
it "remove accessors" do
|
13
13
|
Order.remove_from_flags :b
|
14
14
|
assert_raises { order.b }
|
15
15
|
refute Order.respond_to?(:b)
|
16
16
|
end
|
17
|
-
|
18
17
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
if ENV[
|
2
|
-
require
|
1
|
+
if ENV["COVERAGE"]
|
2
|
+
require "simplecov"
|
3
3
|
SimpleCov.start do
|
4
|
-
add_filter
|
4
|
+
add_filter "/test/"
|
5
5
|
end
|
6
6
|
end
|
7
7
|
|
@@ -9,11 +9,11 @@ require "combustion"
|
|
9
9
|
Combustion.path = "test/internal"
|
10
10
|
Combustion.initialize! :active_record
|
11
11
|
|
12
|
-
require
|
13
|
-
require
|
14
|
-
require
|
15
|
-
#require 'capybara/rails'
|
12
|
+
require "rails/test_help"
|
13
|
+
require "minitest/autorun"
|
14
|
+
require "minitest/benchmark"
|
15
|
+
# require 'capybara/rails'
|
16
16
|
|
17
17
|
def reset_order
|
18
|
-
Order.act_with_flags
|
18
|
+
Order.act_with_flags&.reset
|
19
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: act_with_flags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dittmar Krall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,16 +94,15 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
description: Handles flags in a Rails model instance
|
97
|
+
description: Handles flags/booleans in a Rails model instance
|
98
98
|
email:
|
99
|
-
- dittmar.krall@
|
99
|
+
- dittmar.krall@matiq.com
|
100
100
|
executables: []
|
101
101
|
extensions: []
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
104
|
- ".github/workflows/rake.yml"
|
105
105
|
- ".gitignore"
|
106
|
-
- ".rubocop.yml"
|
107
106
|
- ".ruby-gemset"
|
108
107
|
- ".ruby-version"
|
109
108
|
- ".watchr"
|
@@ -116,14 +115,24 @@ files:
|
|
116
115
|
- act_with_flags.gemspec
|
117
116
|
- gemfiles/rails_6.0.gemfile
|
118
117
|
- gemfiles/rails_6.1.gemfile
|
118
|
+
- gemfiles/rails_7.0.gemfile
|
119
119
|
- lib/act_with_flags.rb
|
120
120
|
- lib/act_with_flags/admin.rb
|
121
|
+
- lib/act_with_flags/clear.rb
|
121
122
|
- lib/act_with_flags/define.rb
|
123
|
+
- lib/act_with_flags/flags.rb
|
122
124
|
- lib/act_with_flags/print.rb
|
123
125
|
- lib/act_with_flags/utils.rb
|
124
126
|
- lib/act_with_flags/version.rb
|
125
127
|
- test/any_all_none_test.rb
|
128
|
+
- test/benchmark_test.rb
|
126
129
|
- test/clear_test.rb
|
130
|
+
- test/coding_check_add_test.rb
|
131
|
+
- test/coding_coverage_test.rb
|
132
|
+
- test/coding_mask2d_test.rb
|
133
|
+
- test/coding_null_test.rb
|
134
|
+
- test/coding_one_test.rb
|
135
|
+
- test/coding_reset_test.rb
|
127
136
|
- test/inheritance_any_test.rb
|
128
137
|
- test/inheritance_test.rb
|
129
138
|
- test/internal/app/assets/config/manifest.js
|
@@ -136,23 +145,23 @@ files:
|
|
136
145
|
- test/internal/config/routes.rb
|
137
146
|
- test/internal/config/secrets.yml
|
138
147
|
- test/internal/db/schema.rb
|
139
|
-
- test/internal_benchmark_test.rb
|
140
|
-
- test/internal_check_add_test.rb
|
141
|
-
- test/internal_null_test.rb
|
142
|
-
- test/internal_one_test.rb
|
143
148
|
- test/legacy_test.rb
|
144
149
|
- test/mask_test.rb
|
145
150
|
- test/null_test.rb
|
146
151
|
- test/one_test.rb
|
147
152
|
- test/origin_test.rb
|
153
|
+
- test/origins_test.rb
|
154
|
+
- test/range2_test.rb
|
155
|
+
- test/range3_test.rb
|
156
|
+
- test/range_test.rb
|
148
157
|
- test/remove_from_test.rb
|
149
|
-
- test/reset_test.rb
|
150
158
|
- test/string_test.rb
|
151
159
|
- test/test_helper.rb
|
152
|
-
homepage: http://
|
160
|
+
homepage: http://matiq.com
|
153
161
|
licenses:
|
154
162
|
- MIT
|
155
|
-
metadata:
|
163
|
+
metadata:
|
164
|
+
source_code_uri: https://github.com/matique/act_with_flags
|
156
165
|
post_install_message:
|
157
166
|
rdoc_options: []
|
158
167
|
require_paths:
|
@@ -168,35 +177,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
177
|
- !ruby/object:Gem::Version
|
169
178
|
version: '0'
|
170
179
|
requirements: []
|
171
|
-
rubygems_version: 3.
|
180
|
+
rubygems_version: 3.3.7
|
172
181
|
signing_key:
|
173
182
|
specification_version: 4
|
174
183
|
summary: act_with_flags gem
|
175
|
-
test_files:
|
176
|
-
- test/any_all_none_test.rb
|
177
|
-
- test/clear_test.rb
|
178
|
-
- test/inheritance_any_test.rb
|
179
|
-
- test/inheritance_test.rb
|
180
|
-
- test/internal/app/assets/config/manifest.js
|
181
|
-
- test/internal/app/controllers/application_controller.rb
|
182
|
-
- test/internal/app/controllers/orders_controller.rb
|
183
|
-
- test/internal/app/models/application_record.rb
|
184
|
-
- test/internal/app/models/order.rb
|
185
|
-
- test/internal/app/views/layouts/application.html.erb
|
186
|
-
- test/internal/config/database.yml
|
187
|
-
- test/internal/config/routes.rb
|
188
|
-
- test/internal/config/secrets.yml
|
189
|
-
- test/internal/db/schema.rb
|
190
|
-
- test/internal_benchmark_test.rb
|
191
|
-
- test/internal_check_add_test.rb
|
192
|
-
- test/internal_null_test.rb
|
193
|
-
- test/internal_one_test.rb
|
194
|
-
- test/legacy_test.rb
|
195
|
-
- test/mask_test.rb
|
196
|
-
- test/null_test.rb
|
197
|
-
- test/one_test.rb
|
198
|
-
- test/origin_test.rb
|
199
|
-
- test/remove_from_test.rb
|
200
|
-
- test/reset_test.rb
|
201
|
-
- test/string_test.rb
|
202
|
-
- test/test_helper.rb
|
184
|
+
test_files: []
|
data/.rubocop.yml
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
# For development purposes; do not waste your tine reading it!
|
2
|
-
# YAGNI
|
3
|
-
# rubocop:disable all
|
4
|
-
|
5
|
-
require 'test_helper'
|
6
|
-
require 'benchmark'
|
7
|
-
require 'benchmark/ips'
|
8
|
-
# ENV['MORE'] = 'true'
|
9
|
-
|
10
|
-
describe 'Internal timings' do
|
11
|
-
let(:order) { Order.create }
|
12
|
-
|
13
|
-
def setup
|
14
|
-
reset_order
|
15
|
-
Order.add_to_flags :blocked
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'times ips' do
|
19
|
-
return unless ENV['MORE']
|
20
|
-
|
21
|
-
Benchmark.ips do |x|
|
22
|
-
x.report('assign true : ') { order.blocked = true }
|
23
|
-
x.report('assign false: ') { order.blocked = false }
|
24
|
-
x.report('assign "false": ') { order.blocked = 'false' }
|
25
|
-
x.report('x = order.blocked? ') { x = order.blocked? }
|
26
|
-
x.report('x = order.blocked ') { x = order.blocked }
|
27
|
-
|
28
|
-
x.compare!
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
class BenchFoo < Minitest::Benchmark
|
35
|
-
|
36
|
-
def bench_order_blocked
|
37
|
-
return unless ENV['MORE']
|
38
|
-
|
39
|
-
n = 1_000_000
|
40
|
-
n = 100_000
|
41
|
-
n = 10_000
|
42
|
-
Order.add_to_flags :blocked2
|
43
|
-
order = Order.create
|
44
|
-
assert_performance_constant do |input|
|
45
|
-
n.times do
|
46
|
-
order.blocked2 = true
|
47
|
-
order.blocked2 = !order.blocked2
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe 'Internal check add flag' do
|
4
|
-
let(:admin) { Order.act_with_flags }
|
5
|
-
|
6
|
-
def setup
|
7
|
-
reset_order
|
8
|
-
Order.add_to_flags a: 1, b: 7, c: 3
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'skip reserved position' do
|
12
|
-
Order.add_to_flags :xx
|
13
|
-
assert_equal 0, admin.position(:xx)
|
14
|
-
Order.add_to_flags :yy
|
15
|
-
assert_equal 2, admin.position(:yy)
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'rejects redefinition' do
|
19
|
-
Order.add_to_flags :z
|
20
|
-
assert_raises { Order.add_to_flags :z }
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'rejects reuse of position' do
|
24
|
-
assert_raises { Order.add_to_flags qq: 1 }
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'coverage to_s' do
|
28
|
-
res = admin.to_s
|
29
|
-
puts res if ENV['MORE']
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'coverage position raise' do
|
33
|
-
assert_raises { admin.position(:aaaa) }
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
data/test/internal_null_test.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe 'Internal Null' do
|
4
|
-
let(:admin) { Order.act_with_flags }
|
5
|
-
|
6
|
-
def setup
|
7
|
-
reset_order
|
8
|
-
Order.add_to_flags
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'respond to act_with_flags' do
|
12
|
-
assert Order.respond_to?(:act_with_flags)
|
13
|
-
refute_nil Order.act_with_flags
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'tests to_boolean' do
|
17
|
-
assert admin.to_boolean(true)
|
18
|
-
refute admin.to_boolean(false)
|
19
|
-
assert_raises { admin.to_boolean(nil) }
|
20
|
-
assert_raises { admin.to_boolean(2) }
|
21
|
-
assert_raises { admin.to_boolean('unknown') }
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'tests a simple administration: names' do
|
25
|
-
refute_nil admin.names
|
26
|
-
assert_equal [], admin.names
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
data/test/internal_one_test.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# rubocop: disable all
|
2
|
-
|
3
|
-
require 'test_helper'
|
4
|
-
|
5
|
-
describe 'Internal One Flag' do
|
6
|
-
let(:flag) { :blocked }
|
7
|
-
let(:admin) { Order.act_with_flags }
|
8
|
-
let(:order) { Order.new }
|
9
|
-
|
10
|
-
def setup
|
11
|
-
reset_order
|
12
|
-
Order.add_to_flags flag
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'test Order.act_with_flags' do
|
16
|
-
refute_nil admin
|
17
|
-
assert_equal admin, order.class.act_with_flags
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'checks definition of methods for flag' do
|
21
|
-
msg = "method '#{flag}' not defined'
|
22
|
-
assert order.respond_to?("#{flag}"), msg
|
23
|
-
assert order.respond_to?("#{flag}?"), msg
|
24
|
-
assert order.respond_to?("#{flag}="), msg
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
data/test/reset_test.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe 'Testing reset' do
|
4
|
-
let(:order) { Order.new }
|
5
|
-
|
6
|
-
def setup
|
7
|
-
reset_order
|
8
|
-
Order.add_to_flags :a
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'reset hard' do
|
12
|
-
refute_equal [], Order.add_to_flags.names
|
13
|
-
Order.act_with_flags&.reset
|
14
|
-
assert_equal [], Order.add_to_flags.names
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|