evt-schema-fixtures 0.0.0.0 → 0.0.0.5
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/lib/schema/fixtures.rb +6 -0
- data/lib/schema/fixtures/assignment.rb +63 -0
- data/lib/schema/fixtures/attribute.rb +16 -0
- data/lib/schema/fixtures/controls.rb +6 -0
- data/lib/schema/fixtures/equality.rb +79 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fb18002db077a88beb7223802c29209dbfa96a04f4765d4d131c66316f43896
|
4
|
+
data.tar.gz: 4c2bbf6002d66ee540f3c3523d1812be732a3cb0a3ff09cc4af55ffb0100e1ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 290500b80a0cbc723fa6dc4615f9d44dcac8547b2e4fe838b1d555c3d69c6cecc0e7393160906c29697e60f15e45698ab47f94bb4b5a3ef8f2ca2b0da6ea6fe6
|
7
|
+
data.tar.gz: 75db324f49fade5d3a51f04a0147bf5ec91a16f04e565848a0b534b79dd4b02050cffa6b8d9c315c7b9a730a7473cc55d1139fd24bbbfdd1fdf814a3cdd78198
|
data/lib/schema/fixtures.rb
CHANGED
@@ -0,0 +1,63 @@
|
|
1
|
+
module Schema
|
2
|
+
module Fixtures
|
3
|
+
class Assignment
|
4
|
+
include TestBench::Fixture
|
5
|
+
include Initializer
|
6
|
+
|
7
|
+
def print_title_context?
|
8
|
+
if @print_title_context.nil?
|
9
|
+
@print_title_context = true
|
10
|
+
end
|
11
|
+
@print_title_context
|
12
|
+
end
|
13
|
+
|
14
|
+
def title_context_name
|
15
|
+
@title_context_name ||= "Schema Assignment: #{comparison.compare_class.type}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def attributes_context_name
|
19
|
+
@attributes_context_name ||= 'Attributes'
|
20
|
+
end
|
21
|
+
|
22
|
+
def schema_class
|
23
|
+
comparison.control_class
|
24
|
+
end
|
25
|
+
|
26
|
+
initializer :comparison, na(:print_title_context), na(:title_context_name), na(:attributes_context_name)
|
27
|
+
|
28
|
+
def self.build(compare, attribute_names=nil, print_title_context: nil, title_context_name: nil, attributes_context_name: nil)
|
29
|
+
control = compare.class.new
|
30
|
+
comparison = Schema::Compare.(control, compare, attribute_names)
|
31
|
+
new(comparison, print_title_context, title_context_name, attributes_context_name)
|
32
|
+
end
|
33
|
+
|
34
|
+
def call
|
35
|
+
if print_title_context?
|
36
|
+
context "#{title_context_name}" do
|
37
|
+
detail "Class: #{schema_class.name}"
|
38
|
+
|
39
|
+
call!
|
40
|
+
end
|
41
|
+
else
|
42
|
+
call!
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def call!
|
47
|
+
context attributes_context_name do
|
48
|
+
comparison.entries.each do |entry|
|
49
|
+
default_attribute_value = entry.control_value
|
50
|
+
attribute_value = entry.compare_value
|
51
|
+
|
52
|
+
test "#{entry.compare_name}" do
|
53
|
+
detail "Default Value: #{default_attribute_value.inspect}"
|
54
|
+
detail "Assigned Value: #{attribute_value.inspect}"
|
55
|
+
|
56
|
+
refute(attribute_value == default_attribute_value)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Schema
|
2
|
+
module Fixtures
|
3
|
+
module Attribute
|
4
|
+
def self.printed_name(entry)
|
5
|
+
control_name = entry.control_name
|
6
|
+
compare_name = entry.compare_name
|
7
|
+
|
8
|
+
if control_name == compare_name
|
9
|
+
return control_name.to_s
|
10
|
+
else
|
11
|
+
return "#{control_name} => #{compare_name}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module Schema
|
2
|
+
module Fixtures
|
3
|
+
class Equality
|
4
|
+
include TestBench::Fixture
|
5
|
+
include Initializer
|
6
|
+
|
7
|
+
def ignore_class?
|
8
|
+
@ignore_class ||= false
|
9
|
+
end
|
10
|
+
|
11
|
+
def print_title_context?
|
12
|
+
if @print_title_context.nil?
|
13
|
+
@print_title_context = true
|
14
|
+
end
|
15
|
+
@print_title_context
|
16
|
+
end
|
17
|
+
|
18
|
+
def title_context_name
|
19
|
+
@title_context_name ||= "Schema Equality: #{comparison.control_class.type}, #{comparison.compare_class.type}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def attributes_context_name
|
23
|
+
@attributes_context_name ||= 'Attributes'
|
24
|
+
end
|
25
|
+
|
26
|
+
def control_class
|
27
|
+
comparison.control_class
|
28
|
+
end
|
29
|
+
|
30
|
+
def compare_class
|
31
|
+
comparison.compare_class
|
32
|
+
end
|
33
|
+
|
34
|
+
initializer :comparison, na(:ignore_class), na(:print_title_context), na(:title_context_name), na(:attributes_context_name)
|
35
|
+
|
36
|
+
def self.build(control, compare, attribute_names=nil, ignore_class: nil, print_title_context: nil, title_context_name: nil, attributes_context_name: nil)
|
37
|
+
comparison = Schema::Compare.(control, compare, attribute_names)
|
38
|
+
new(comparison, ignore_class, print_title_context, title_context_name, attributes_context_name)
|
39
|
+
end
|
40
|
+
|
41
|
+
def call
|
42
|
+
if print_title_context?
|
43
|
+
context "#{title_context_name}" do
|
44
|
+
detail "Control Class: #{control_class.name}"
|
45
|
+
detail "Compare Class: #{compare_class.name}"
|
46
|
+
|
47
|
+
call!
|
48
|
+
end
|
49
|
+
else
|
50
|
+
call!
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def call!
|
55
|
+
if not ignore_class?
|
56
|
+
test "Classes are the same" do
|
57
|
+
assert(control_class == compare_class)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context attributes_context_name do
|
62
|
+
comparison.entries.each do |entry|
|
63
|
+
printed_attribute_name = Attribute.printed_name(entry)
|
64
|
+
|
65
|
+
control_attribute_value = entry.control_value
|
66
|
+
compare_attribute_value = entry.compare_value
|
67
|
+
|
68
|
+
test printed_attribute_name do
|
69
|
+
detail "#{control_class.name.split('::').last} Value: #{control_attribute_value.inspect}"
|
70
|
+
detail "#{compare_class.name.split('::').last} Value: #{compare_attribute_value.inspect}"
|
71
|
+
|
72
|
+
assert(compare_attribute_value == control_attribute_value)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-schema-fixtures
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.0.
|
4
|
+
version: 0.0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: evt-schema
|
@@ -59,7 +59,10 @@ extensions: []
|
|
59
59
|
extra_rdoc_files: []
|
60
60
|
files:
|
61
61
|
- lib/schema/fixtures.rb
|
62
|
+
- lib/schema/fixtures/assignment.rb
|
63
|
+
- lib/schema/fixtures/attribute.rb
|
62
64
|
- lib/schema/fixtures/controls.rb
|
65
|
+
- lib/schema/fixtures/equality.rb
|
63
66
|
homepage: https://github.com/eventide-project/schema-fixtures
|
64
67
|
licenses:
|
65
68
|
- MIT
|