aboutsummaryrefslogtreecommitdiffstats
path: root/spec/support/data_modifier
diff options
context:
space:
mode:
authorRobert2017-09-29 17:55:58 +0200
committerRobert2017-10-02 10:52:07 +0200
commitf034dc2999a56295178c64921e6f059adc1a7bd9 (patch)
treed9cf98cd0df42e7f776a727e09fefb02499a6d59 /spec/support/data_modifier
parentea6537e2f520ca9abba0ca63c68ee42afe08d872 (diff)
downloadchouette-core-f034dc2999a56295178c64921e6f059adc1a7bd9.tar.bz2
Refs: #4627@0.75h;
Got some data_modifier support for attribute generation w/w-o defaults for model tests generic_attribute_control
Diffstat (limited to 'spec/support/data_modifier')
-rw-r--r--spec/support/data_modifier/bool.rb18
-rw-r--r--spec/support/data_modifier/box.rb22
-rw-r--r--spec/support/data_modifier/enum.rb19
3 files changed, 59 insertions, 0 deletions
diff --git a/spec/support/data_modifier/bool.rb b/spec/support/data_modifier/bool.rb
new file mode 100644
index 000000000..f4be9bd89
--- /dev/null
+++ b/spec/support/data_modifier/bool.rb
@@ -0,0 +1,18 @@
+require_relative 'box'
+
+module Support
+ module DataModifier
+
+ class BoolBox
+ include Box
+ attr_reader :value
+
+ def initialize value
+ @value = value
+ end
+ def next
+ self.class.new(!value)
+ end
+ end
+ end
+end
diff --git a/spec/support/data_modifier/box.rb b/spec/support/data_modifier/box.rb
new file mode 100644
index 000000000..0fb95f743
--- /dev/null
+++ b/spec/support/data_modifier/box.rb
@@ -0,0 +1,22 @@
+module Support
+ module DataModifier
+ module Box
+ def next
+ raise "Need to implement #{__method__} in #{self.class}"
+ end
+
+ class << self
+ def unbox atts
+ atts.inject Hash.new do | h, (k,v) |
+ h.merge(k => value_of(v))
+ end
+ end
+ def value_of v
+ self === v ? v.value : v
+ end
+ end
+ end
+
+ end
+end
+
diff --git a/spec/support/data_modifier/enum.rb b/spec/support/data_modifier/enum.rb
new file mode 100644
index 000000000..c8a6fe573
--- /dev/null
+++ b/spec/support/data_modifier/enum.rb
@@ -0,0 +1,19 @@
+require_relative 'box'
+
+module Support
+ module DataModifier
+
+ class EnumBox
+ include Box
+ attr_reader :value, :values
+
+ def initialize *enum_values
+ @values = enum_values
+ @value = @values.first
+ end
+ def next
+ self.class.new(*(@values[1..-1] << @values.first))
+ end
+ end
+ end
+end