aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert2017-10-13 16:48:46 +0200
committerRobert2017-10-16 07:47:37 +0200
commitc266ee913353d67a3674ed6188c2ff96b44407c1 (patch)
treed128f614d8eeb8e6a617fed4b67dd00b8a7658ab
parenta8da41521f5e45d2ab39ddd9b0269d8cd1094d35 (diff)
downloadchouette-core-c266ee913353d67a3674ed6188c2ff96b44407c1.tar.bz2
Refs: #4270@0.6h;
GenericControlAttribute validation speced for - MinMax - Pattern
-rw-r--r--spec/models/compliance_control_validations/genric_attribute_validation/min_max_validation_spec.rb44
-rw-r--r--spec/models/compliance_control_validations/genric_attribute_validation/pattern_validation_spec.rb23
2 files changed, 67 insertions, 0 deletions
diff --git a/spec/models/compliance_control_validations/genric_attribute_validation/min_max_validation_spec.rb b/spec/models/compliance_control_validations/genric_attribute_validation/min_max_validation_spec.rb
new file mode 100644
index 000000000..409475a46
--- /dev/null
+++ b/spec/models/compliance_control_validations/genric_attribute_validation/min_max_validation_spec.rb
@@ -0,0 +1,44 @@
+RSpec.describe GenericAttributeControl::MinMax do
+
+ let( :factory ){ :generic_attribute_control_min_max }
+ subject{ build factory }
+
+ context "is valid" do
+ it 'if no value is provided' do
+ expect_it.to be_valid
+ end
+ it 'if minimum is provided alone' do
+ subject.minimum = 42
+ expect_it.to be_valid
+ end
+ it 'if maximum is provided alone' do
+ subject.maximum = 42
+ expect_it.to be_valid
+ end
+
+ it 'if maximum is not smaller than minimum' do
+ 100.times do
+ min = random_int
+ max = min + random_int(20)
+ subject.assign_attributes maximum: max, minimum: min
+ subject.assign_attributes maximum: min, minimum: min
+ expect_it.to be_valid
+ end
+ end
+ end
+
+ context "is invalid" do
+ it 'if maximum is smaller than minimum' do
+ 100.times do
+ min = random_int
+ max = min - random_int(20) - 1
+ subject.assign_attributes maximum: max, minimum: min
+ expect_it.not_to be_valid
+ end
+ end
+
+ end
+
+
+
+end
diff --git a/spec/models/compliance_control_validations/genric_attribute_validation/pattern_validation_spec.rb b/spec/models/compliance_control_validations/genric_attribute_validation/pattern_validation_spec.rb
new file mode 100644
index 000000000..82c5c10c3
--- /dev/null
+++ b/spec/models/compliance_control_validations/genric_attribute_validation/pattern_validation_spec.rb
@@ -0,0 +1,23 @@
+RSpec.describe GenericAttributeControl::Pattern do
+
+ let( :factory ){ :generic_attribute_control_pattern }
+ subject{ build factory }
+
+ context "is valid" do
+ if 'the pattern contains a basic regex' do
+ subject.pattern = 'hel+o?'
+ expect_it.to be_valid
+ end
+ end
+
+ context "is invalid" do
+ it 'if no pattern has been provided' do
+ expect_it.not_to be_valid
+ end
+ it 'if the pattern is empty' do
+ subject.pattern = ' '
+ expect_it.not_to be_valid
+ end
+
+ end
+end