act_with_flags 0.2.3 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +30 -0
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/.watchr +29 -16
- data/Appraisals +12 -4
- data/Gemfile +7 -6
- data/Gemfile.lock +156 -125
- data/MIT-LICENSE +1 -1
- data/README.md +77 -10
- data/Rakefile +5 -5
- data/act_with_flags.gemspec +20 -20
- data/gemfiles/rails_6.0.gemfile +4 -1
- data/gemfiles/{rails_5.2.gemfile → rails_6.1.gemfile} +3 -1
- data/gemfiles/rails_7.0.gemfile +15 -0
- data/lib/act_with_flags/admin.rb +5 -48
- 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 +21 -27
- data/lib/act_with_flags/utils.rb +33 -13
- data/lib/act_with_flags/version.rb +9 -13
- data/lib/act_with_flags.rb +28 -33
- 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/range_test.rb +89 -0
- data/test/remove_from_test.rb +3 -4
- data/test/test_helper.rb +9 -9
- metadata +47 -67
- data/.rubocop.yml +0 -8
- data/.travis.yml +0 -23
- 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,73 @@
|
|
1
|
+
# For development purposes; do not waste your tine reading it!
|
2
|
+
# YAGNI
|
3
|
+
|
4
|
+
require "test_helper"
|
5
|
+
require "benchmark"
|
6
|
+
require "benchmark/ips"
|
7
|
+
# ENV["MORE"] = "true"
|
8
|
+
|
9
|
+
describe "Internal timings flag" do
|
10
|
+
let(:order) { Order.create }
|
11
|
+
|
12
|
+
def setup
|
13
|
+
reset_order
|
14
|
+
Order.add_to_flags :blocked
|
15
|
+
end
|
16
|
+
|
17
|
+
it "times ips" do
|
18
|
+
return unless ENV["MORE"]
|
19
|
+
|
20
|
+
Benchmark.ips do |x|
|
21
|
+
x.report("assign true : ") { order.blocked = true }
|
22
|
+
x.report("assign false: ") { order.blocked = false }
|
23
|
+
x.report("assign \"false\": ") { order.blocked = "false" }
|
24
|
+
x.report("x = order.blocked? ") { x = order.blocked? }
|
25
|
+
x.report("x = order.blocked ") { x = order.blocked }
|
26
|
+
|
27
|
+
x.compare!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "Internal timings mask" do
|
33
|
+
let(:order) { Order.create }
|
34
|
+
let(:admin) { Order.act_with_flags }
|
35
|
+
|
36
|
+
def setup
|
37
|
+
reset_order
|
38
|
+
Order.add_to_flags a: 1, b: 7, c: 3
|
39
|
+
# Order.add_to_flags a: 1, b: 60, c: 3
|
40
|
+
# Order.add_to_flags a: 1, b: 1000, c: 3
|
41
|
+
end
|
42
|
+
|
43
|
+
it "times ips" do
|
44
|
+
return unless ENV["MORE"]
|
45
|
+
|
46
|
+
Benchmark.ips do |x|
|
47
|
+
x.report("mask(:a, :b): ") { admin.mask(:a, :b) }
|
48
|
+
x.report("any?(:a, :b): ") { order.flags_any?(:a, :b) }
|
49
|
+
x.report("all?(:a, :b): ") { order.flags_all?(:a, :b) }
|
50
|
+
x.report("none?(:a, :b): ") { order.flags_none?(:a, :b) }
|
51
|
+
|
52
|
+
x.compare!
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class BenchFoo < Minitest::Benchmark
|
58
|
+
def bench_order_blocked
|
59
|
+
return unless ENV["MORE"]
|
60
|
+
|
61
|
+
n = 1_000_000
|
62
|
+
n = 100_000
|
63
|
+
n = 10_000
|
64
|
+
Order.add_to_flags :blocked2
|
65
|
+
order = Order.create
|
66
|
+
assert_performance_constant do |input|
|
67
|
+
n.times do
|
68
|
+
order.blocked2 = true
|
69
|
+
order.blocked2 = !order.blocked2
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/test/clear_test.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
|
-
describe
|
4
|
-
let(:admin) { Order.act_with_flags }
|
3
|
+
describe "Clear flags at save" do
|
5
4
|
let(:order) { Order.create }
|
6
5
|
|
7
6
|
def setup
|
@@ -10,21 +9,20 @@ describe 'Clear Flags at Save' do
|
|
10
9
|
order.a = order.b = order.c = true
|
11
10
|
end
|
12
11
|
|
13
|
-
it
|
12
|
+
it "checks sanity" do
|
14
13
|
assert_equal 0x8a, order.flags
|
15
14
|
assert order.b
|
16
15
|
end
|
17
16
|
|
18
|
-
it
|
17
|
+
it "clear flags during save" do
|
19
18
|
Order.clear_flags_at_save :b
|
20
19
|
order.save
|
21
20
|
order.reload
|
22
21
|
assert_equal 0x0a, order.flags
|
23
22
|
end
|
24
23
|
|
25
|
-
it
|
24
|
+
it "does not remove accessor" do
|
26
25
|
Order.clear_flags_at_save :b
|
27
26
|
Order.respond_to? :b
|
28
27
|
end
|
29
|
-
|
30
28
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "Internal check add flag" do
|
4
|
+
let(:order) { Order.create }
|
5
|
+
|
6
|
+
def setup
|
7
|
+
reset_order
|
8
|
+
Order.add_to_flags a: 1, b: 7
|
9
|
+
end
|
10
|
+
|
11
|
+
it "skip reserved position" do
|
12
|
+
Order.add_to_flags :xx
|
13
|
+
order.xx = true
|
14
|
+
assert_equal 0x100, order.flags
|
15
|
+
|
16
|
+
Order.add_to_flags :yy
|
17
|
+
order.yy = true
|
18
|
+
assert_equal 0x300, order.flags
|
19
|
+
end
|
20
|
+
|
21
|
+
it "rejects redefinition" do
|
22
|
+
Order.add_to_flags :z
|
23
|
+
assert_raises { Order.add_to_flags :z }
|
24
|
+
end
|
25
|
+
|
26
|
+
it "rejects reuse of position" do
|
27
|
+
assert_raises { Order.add_to_flags qq: 1 }
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "Coverage" do
|
4
|
+
let(:order) { Order.create }
|
5
|
+
|
6
|
+
def setup
|
7
|
+
reset_order
|
8
|
+
Order.add_to_flags a: 1, b: 7
|
9
|
+
end
|
10
|
+
|
11
|
+
it "coverage to_s" do
|
12
|
+
res = order.act_with_flags.to_s
|
13
|
+
puts res if ENV["MORE"]
|
14
|
+
end
|
15
|
+
|
16
|
+
it "coverage location raise" do
|
17
|
+
assert_raises { order.act_with_flags.location(:unknown) }
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
# There is an interference with Class B in another test: call it BB!
|
4
|
+
class BB < Order
|
5
|
+
add_to_flags x: 1
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "mask2d" do
|
9
|
+
let(:admin) { BB.act_with_flags }
|
10
|
+
|
11
|
+
def setup
|
12
|
+
reset_order
|
13
|
+
Order.add_to_flags y: 2
|
14
|
+
end
|
15
|
+
|
16
|
+
it "is a non splitted mask" do
|
17
|
+
mask = admin.mask2d(:x)
|
18
|
+
assert_equal 1, mask.length
|
19
|
+
end
|
20
|
+
|
21
|
+
it "is a splitted mask" do
|
22
|
+
mask = admin.mask2d(:x, :y)
|
23
|
+
assert_equal 2, mask.length
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,29 @@
|
|
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
|
+
assert admin.to_boolean("true")
|
19
|
+
assert admin.to_boolean(1)
|
20
|
+
assert admin.to_boolean("1")
|
21
|
+
refute admin.to_boolean(false)
|
22
|
+
refute admin.to_boolean("false")
|
23
|
+
refute admin.to_boolean(0)
|
24
|
+
refute admin.to_boolean("0")
|
25
|
+
assert_raises { admin.to_boolean(nil) }
|
26
|
+
assert_raises { admin.to_boolean(2) }
|
27
|
+
assert_raises { admin.to_boolean("unknown") }
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "Internal One Flag" do
|
4
|
+
let(:flag) { :blocked }
|
5
|
+
let(:admin) { Order.act_with_flags }
|
6
|
+
let(:order) { Order.new }
|
7
|
+
|
8
|
+
def setup
|
9
|
+
reset_order
|
10
|
+
Order.add_to_flags flag
|
11
|
+
end
|
12
|
+
|
13
|
+
it "test order.act_with_flags" do
|
14
|
+
refute_nil admin
|
15
|
+
assert_equal admin, order.class.act_with_flags
|
16
|
+
assert_equal admin, order.act_with_flags
|
17
|
+
assert_equal admin, Order.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.to_s), msg
|
23
|
+
assert order.respond_to?("#{flag}?"), msg
|
24
|
+
assert order.respond_to?("#{flag}="), msg
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
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
|
+
empty = {}
|
13
|
+
refute_equal empty, Order.add_to_flags.locations
|
14
|
+
|
15
|
+
Order.act_with_flags&.reset
|
16
|
+
assert_equal empty, Order.add_to_flags.locations
|
17
|
+
end
|
18
|
+
end
|
@@ -1,20 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'test_helper'
|
1
|
+
require "test_helper"
|
4
2
|
|
5
3
|
class A < Order
|
6
|
-
add_to_flags y: 2
|
4
|
+
add_to_flags x: 1, y: 2
|
7
5
|
end
|
8
6
|
|
9
|
-
describe
|
7
|
+
describe "inheritance" do
|
10
8
|
let(:a) { A.create }
|
11
9
|
|
12
10
|
def setup
|
13
11
|
reset_order
|
14
|
-
Order.add_to_flags
|
12
|
+
Order.add_to_flags z: 3
|
15
13
|
end
|
16
14
|
|
17
|
-
it
|
15
|
+
it "consistency" do
|
18
16
|
assert a.respond_to?(:x)
|
19
17
|
assert a.respond_to?(:y)
|
20
18
|
assert_equal false, a.x
|
@@ -23,34 +21,12 @@ describe 'inheritance' do
|
|
23
21
|
assert_equal true, a.y
|
24
22
|
end
|
25
23
|
|
26
|
-
it
|
24
|
+
it "checks any?" do
|
27
25
|
a.x = true
|
28
26
|
assert a.flags_any?(:x, :y)
|
29
|
-
a.x = false
|
30
|
-
refute a.flags_any?(:x, :y)
|
31
|
-
end
|
32
27
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
a.y = false
|
37
|
-
refute a.flags_any?(:x, :y)
|
28
|
+
assert_raises(RuntimeError) {
|
29
|
+
assert a.flags_any?(:x, :y, :z)
|
30
|
+
}
|
38
31
|
end
|
39
|
-
|
40
|
-
it 'checks all?' do
|
41
|
-
a.x = a.y = true
|
42
|
-
assert a.flags_all?(:x, :y)
|
43
|
-
a.x = false
|
44
|
-
refute a.flags_all?(:x, :y)
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'checks none? #2' do
|
48
|
-
a.x = a.y = true
|
49
|
-
refute a.flags_none?(:x, :y)
|
50
|
-
a.x = false
|
51
|
-
refute a.flags_none?(:x, :y)
|
52
|
-
a.y = false
|
53
|
-
assert a.flags_none?(:x, :y)
|
54
|
-
end
|
55
|
-
|
56
32
|
end
|
data/test/inheritance_test.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'test_helper'
|
1
|
+
require "test_helper"
|
4
2
|
|
5
3
|
class A < Order
|
6
4
|
end
|
@@ -10,13 +8,13 @@ class B < Order
|
|
10
8
|
end
|
11
9
|
|
12
10
|
class C < Order
|
13
|
-
before_create { |row|
|
11
|
+
before_create { |row| row.flags2 = 0 }
|
14
12
|
|
15
13
|
attr_accessor :flags2
|
16
14
|
add_to_flags z: 3, origin: :flags2
|
17
15
|
end
|
18
16
|
|
19
|
-
describe
|
17
|
+
describe "inheritance" do
|
20
18
|
let(:admina) { A.act_with_flags }
|
21
19
|
let(:adminb) { B.act_with_flags }
|
22
20
|
|
@@ -29,14 +27,14 @@ describe 'inheritance' do
|
|
29
27
|
Order.add_to_flags x: 1
|
30
28
|
end
|
31
29
|
|
32
|
-
it
|
30
|
+
it "inheritance #1" do
|
33
31
|
assert a.respond_to?(:flags)
|
34
32
|
assert a.respond_to?(:x)
|
35
33
|
assert_equal 0, a.flags
|
36
34
|
assert_equal false, a.x
|
37
35
|
end
|
38
36
|
|
39
|
-
it
|
37
|
+
it "inheritance #2" do
|
40
38
|
a.x = false
|
41
39
|
assert_equal false, a.x
|
42
40
|
a.x = true
|
@@ -44,7 +42,7 @@ describe 'inheritance' do
|
|
44
42
|
assert_equal 0x02, a.flags
|
45
43
|
end
|
46
44
|
|
47
|
-
it
|
45
|
+
it "inheritance #3" do
|
48
46
|
assert b.respond_to?(:flags)
|
49
47
|
assert b.respond_to?(:x)
|
50
48
|
assert b.respond_to?(:y)
|
@@ -58,7 +56,7 @@ describe 'inheritance' do
|
|
58
56
|
assert_equal 0x06, b.flags
|
59
57
|
end
|
60
58
|
|
61
|
-
it
|
59
|
+
it "inheritance #4" do
|
62
60
|
assert c.respond_to?(:x)
|
63
61
|
assert c.respond_to?(:z)
|
64
62
|
assert_equal false, c.z
|
@@ -69,5 +67,4 @@ describe 'inheritance' do
|
|
69
67
|
assert_equal 0x02, c.flags
|
70
68
|
assert_equal 0x08, c.flags2
|
71
69
|
end
|
72
|
-
|
73
70
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
class OrdersController < ApplicationController
|
2
|
-
|
3
2
|
def index
|
4
3
|
@orders = Order.all
|
5
4
|
end
|
@@ -9,8 +8,7 @@ class OrdersController < ApplicationController
|
|
9
8
|
end
|
10
9
|
|
11
10
|
def show
|
12
|
-
Order.create :
|
11
|
+
Order.create name: "hugo"
|
13
12
|
@order = Order.find(params[:id])
|
14
13
|
end
|
15
|
-
|
16
14
|
end
|
data/test/internal/db/schema.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
ActiveRecord::Schema.define(version: 201910) do
|
2
|
-
|
3
2
|
create_table "orders", force: true do |t|
|
4
|
-
t.string
|
5
|
-
t.string
|
6
|
-
t.integer
|
7
|
-
t.text
|
8
|
-
t.integer
|
3
|
+
t.string "name"
|
4
|
+
t.string "qty"
|
5
|
+
t.integer "flags", default: 0
|
6
|
+
t.text "bigflags", default: "0"
|
7
|
+
t.integer "origin1", default: 0
|
8
|
+
t.integer "origin2", default: 0
|
9
9
|
t.datetime "created_at", null: false
|
10
10
|
t.datetime "updated_at", null: false
|
11
11
|
end
|
12
|
-
|
13
12
|
end
|
data/test/legacy_test.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
|
-
require 'test_helper'
|
1
|
+
require "test_helper"
|
3
2
|
|
4
|
-
describe
|
3
|
+
describe "Legacy Flag" do
|
5
4
|
let(:order) { Order.create }
|
6
5
|
|
7
6
|
def setup
|
@@ -9,23 +8,24 @@ describe 'Legacy Flag' do
|
|
9
8
|
Order.add_to_flags a: 1, b: 7, c: 3
|
10
9
|
end
|
11
10
|
|
12
|
-
it
|
11
|
+
it "set true" do
|
13
12
|
test3 true, true, true
|
14
13
|
end
|
15
14
|
|
16
|
-
it
|
15
|
+
it "set false" do
|
17
16
|
test3 false, false, false
|
18
17
|
end
|
19
18
|
|
20
|
-
it
|
19
|
+
it "set mixture" do
|
21
20
|
test3 false, true, false
|
22
21
|
end
|
23
22
|
|
24
|
-
it
|
23
|
+
it "set mixture #2" do
|
25
24
|
test3 true, false, true
|
26
25
|
end
|
27
26
|
|
28
|
-
|
27
|
+
private
|
28
|
+
|
29
29
|
def test3(a, b, c)
|
30
30
|
order.a = a
|
31
31
|
order.b = b
|
@@ -35,5 +35,4 @@ describe 'Legacy Flag' do
|
|
35
35
|
assert_equal b, order.b
|
36
36
|
assert_equal c, order.c
|
37
37
|
end
|
38
|
-
|
39
38
|
end
|
data/test/mask_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe "mask" do
|
4
4
|
let(:admin) { Order.act_with_flags }
|
5
5
|
|
6
6
|
def setup
|
@@ -8,21 +8,20 @@ describe 'mask' do
|
|
8
8
|
Order.add_to_flags a: 1, b: 7, c: 3
|
9
9
|
end
|
10
10
|
|
11
|
-
it
|
11
|
+
it "mask empty" do
|
12
12
|
assert_equal 0x00, admin.mask
|
13
13
|
end
|
14
14
|
|
15
|
-
it
|
15
|
+
it "mask of one flag" do
|
16
16
|
assert_equal 0x80, admin.mask(:b)
|
17
17
|
end
|
18
18
|
|
19
|
-
it
|
19
|
+
it "mask of several flags" do
|
20
20
|
assert_equal 0x8a, admin.mask(:a, :b, :c)
|
21
21
|
end
|
22
22
|
|
23
|
-
it
|
23
|
+
it "order is not relevant" do
|
24
24
|
mask = admin.mask(:a, :b, :c)
|
25
25
|
assert_equal mask, admin.mask(:c, :b, :a)
|
26
26
|
end
|
27
|
-
|
28
27
|
end
|
data/test/null_test.rb
CHANGED
@@ -1,17 +1,15 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
describe 'No Flags' do
|
1
|
+
require "test_helper"
|
4
2
|
|
3
|
+
describe "No Flags" do
|
5
4
|
def setup
|
6
5
|
reset_order
|
7
6
|
Order.add_to_flags
|
8
7
|
end
|
9
8
|
|
10
|
-
it
|
9
|
+
it "respond to ActWithFlags API" do
|
11
10
|
assert Order.respond_to?(:add_to_flags)
|
12
11
|
assert Order.respond_to?(:remove_from_flags)
|
13
12
|
assert Order.respond_to?(:clear_flags_at_save)
|
14
13
|
assert Order.respond_to?(:act_with_flags)
|
15
14
|
end
|
16
|
-
|
17
15
|
end
|
data/test/one_test.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
|
-
require 'test_helper'
|
1
|
+
require "test_helper"
|
3
2
|
|
4
|
-
describe
|
5
|
-
let(:flag)
|
3
|
+
describe "One Flag" do
|
4
|
+
let(:flag) { :blocked }
|
6
5
|
let(:order) { Order.create }
|
7
6
|
|
8
7
|
def setup
|
@@ -10,24 +9,23 @@ describe 'One Flag' do
|
|
10
9
|
Order.add_to_flags flag
|
11
10
|
end
|
12
11
|
|
13
|
-
it
|
12
|
+
it "set flag (:blocked)" do
|
14
13
|
order.blocked = true
|
15
14
|
assert_equal true, order.blocked
|
16
15
|
assert_equal true, order.blocked?
|
17
16
|
|
18
|
-
order.blocked =
|
17
|
+
order.blocked = "false"
|
19
18
|
assert_equal false, order.blocked
|
20
19
|
assert_equal false, order.blocked?
|
21
20
|
end
|
22
21
|
|
23
|
-
it
|
22
|
+
it "rejects redefining" do
|
24
23
|
assert_raises { Order.add_to_flags :id }
|
25
24
|
assert_raises { Order.add_to_flags flag }
|
26
25
|
end
|
27
26
|
|
28
|
-
it
|
27
|
+
it "rejects redefining #2" do
|
29
28
|
Order.add_to_flags :berta
|
30
29
|
assert_raises { Order.add_to_flags :berta }
|
31
30
|
end
|
32
|
-
|
33
31
|
end
|
data/test/origin_test.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
|
1
|
+
require "test_helper"
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe 'Testing origin' do
|
3
|
+
describe "Testing origin" do
|
6
4
|
let(:admin) { Order.act_with_flags }
|
7
5
|
let(:order) { Order.new }
|
8
6
|
|
@@ -10,30 +8,13 @@ describe 'Testing origin' do
|
|
10
8
|
reset_order
|
11
9
|
end
|
12
10
|
|
13
|
-
it
|
14
|
-
Order.add_to_flags :x, origin: :
|
15
|
-
assert_equal :
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'origin category #2' do
|
19
|
-
Order.add_to_flags :x, origin: :category
|
20
|
-
assert_raises { Order.add_to_flags origin: :category2 }
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'origin category #3' do
|
24
|
-
Order.add_to_flags :x, origin: :category
|
25
|
-
Order.add_to_flags origin: :category
|
11
|
+
it "location origin1" do
|
12
|
+
Order.add_to_flags :x, origin: :origin1
|
13
|
+
assert_equal :origin1, admin.location(:x).origin
|
26
14
|
end
|
27
15
|
|
28
|
-
it
|
16
|
+
it "origin default" do
|
29
17
|
Order.add_to_flags :x
|
30
|
-
assert_equal :flags, admin.origin
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'origin 1' do
|
34
|
-
Order.add_to_flags origin: 1
|
35
|
-
assert_equal :flags, admin.origin
|
36
|
-
assert order.respond_to?(:origin)
|
18
|
+
assert_equal :flags, admin.location(:x).origin
|
37
19
|
end
|
38
|
-
|
39
20
|
end
|