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,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
|