evt-schema-fixtures 0.0.0.0 → 0.0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc9111e97989d9438e3bf7de94bf6873a6d4b1b838f1c42812c5b0a1acd8912a
4
- data.tar.gz: 33fa35056749cd4b9849ca76482536dbe5c45e2c9b8949c449945b3ec5b03a58
3
+ metadata.gz: 783a3842c3daedef33a37e3aa3e2fc9ba3a124008d8b965687b7e985d1e359c5
4
+ data.tar.gz: e228cc08b885e8b8456aabc38ce1831aaff7dc9ba24a50924e33a3bd3e1ad16a
5
5
  SHA512:
6
- metadata.gz: bb515269536abacc5960c134a4c58d7bebdd428a901685bc8351b13804bda7f1dd1ca9bfc07039f59c6f83faf718a2a9e75be684a3eb6db48c1feae323436d70
7
- data.tar.gz: b82cc17779017eaafbccaa264c681320195230e43f849111d2c9370e11d35fa50c54d237e5d91ca51b38ae690b95f265265c1b9b21060d73f031d27d2e6280c8
6
+ metadata.gz: 12edf0070476d0cbdf33c4506111afe09a2a19b0d5e17eec71c3f99801212a6dee8fe1d78103a35182ac4d533b0f8c931b411950a6b621cdb7891f55da4a92b6
7
+ data.tar.gz: d097d45abb8646a815f93a9d4ed308309a810cff871816b20c6462b93ea480d52d6caed51711547bc744afb900cb9703c88889e88a2b50c491a954c7ec75b849
@@ -1 +1,7 @@
1
+ require 'test_bench/fixture'
2
+
1
3
  require 'schema'
4
+
5
+ require 'schema/fixtures/attribute'
6
+ require 'schema/fixtures/equality'
7
+ require 'schema/fixtures/assignment'
@@ -0,0 +1,61 @@
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
+ initializer :comparison, na(:print_title_context), na(:title_context_name), na(:attributes_context_name)
23
+
24
+ def self.build(compare, attribute_names=nil, print_title_context: nil, title_context_name: nil, attributes_context_name: nil)
25
+ control = compare.class.new
26
+ comparison = Schema::Compare.(control, compare, attribute_names)
27
+ new(comparison, print_title_context, title_context_name, attributes_context_name)
28
+ end
29
+
30
+ def call()
31
+ schema_class = comparison.control_class
32
+
33
+ test_attributes = proc do
34
+ context attributes_context_name do
35
+ comparison.entries.each do |entry|
36
+ default_attribute_value = entry.control_value
37
+ attribute_value = entry.compare_value
38
+
39
+ test "#{entry.compare_name}" do
40
+ detail "Default Value: #{default_attribute_value.inspect}"
41
+ detail "Assigned Value: #{attribute_value.inspect}"
42
+
43
+ refute(attribute_value == default_attribute_value)
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ if print_title_context?
50
+ context "#{title_context_name}" do
51
+ detail "Class: #{schema_class.name}"
52
+
53
+ test_attributes.()
54
+ end
55
+ else
56
+ test_attributes.()
57
+ end
58
+ end
59
+ end
60
+ end
61
+ 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
@@ -1 +1,7 @@
1
1
  require 'schema/controls'
2
+
3
+ module Schema
4
+ module Fixtures
5
+ Controls = Schema::Controls
6
+ end
7
+ end
@@ -0,0 +1,76 @@
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
+ initializer :comparison, na(:ignore_class), na(:print_title_context), na(:title_context_name), na(:attributes_context_name)
27
+
28
+ def self.build(control, compare, attribute_names=nil, ignore_class: nil, print_title_context: nil, title_context_name: nil, attributes_context_name: nil)
29
+ comparison = Schema::Compare.(control, compare, attribute_names)
30
+ new(comparison, ignore_class, print_title_context, title_context_name, attributes_context_name)
31
+ end
32
+
33
+ def call()
34
+ control_class = comparison.control_class
35
+ compare_class = comparison.compare_class
36
+
37
+ test_attributes = proc do
38
+ context attributes_context_name do
39
+ comparison.entries.each do |entry|
40
+ printed_attribute_name = Attribute.printed_name(entry)
41
+
42
+ control_attribute_value = entry.control_value
43
+ compare_attribute_value = entry.compare_value
44
+
45
+ test printed_attribute_name do
46
+ detail "#{control_class.name.split('::').last} Value: #{control_attribute_value.inspect}"
47
+ detail "#{compare_class.name.split('::').last} Value: #{compare_attribute_value.inspect}"
48
+
49
+ assert(compare_attribute_value == control_attribute_value)
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ if print_title_context?
56
+ context "#{title_context_name}" do
57
+ detail "Control Class: #{control_class.name}"
58
+ detail "Compare Class: #{compare_class.name}"
59
+
60
+ if not ignore_class?
61
+ test "Classes are the same" do
62
+ assert(control_class == compare_class)
63
+ end
64
+ else
65
+ detail 'Class comparison is ignored'
66
+ end
67
+
68
+ test_attributes.()
69
+ end
70
+ else
71
+ test_attributes.()
72
+ end
73
+ end
74
+ end
75
+ end
76
+ 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.0
4
+ version: 0.0.0.1
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-07-09 00:00:00.000000000 Z
11
+ date: 2020-08-02 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