From c266ee913353d67a3674ed6188c2ff96b44407c1 Mon Sep 17 00:00:00 2001 From: Robert Date: Fri, 13 Oct 2017 16:48:46 +0200 Subject: Refs: #4270@0.6h; GenericControlAttribute validation speced for - MinMax - Pattern --- .../min_max_validation_spec.rb | 44 ++++++++++++++++++++++ .../pattern_validation_spec.rb | 23 +++++++++++ 2 files changed, 67 insertions(+) create mode 100644 spec/models/compliance_control_validations/genric_attribute_validation/min_max_validation_spec.rb create mode 100644 spec/models/compliance_control_validations/genric_attribute_validation/pattern_validation_spec.rb 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 -- cgit v1.2.3