aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcedricnjanga2017-10-16 15:00:38 +0200
committercedricnjanga2017-10-16 15:00:38 +0200
commit59038e7a772f88cd9f22891b50d96e4236c04515 (patch)
treecbeb7442d819e7886eab0f81fa4096be64ad5b59
parenta0734d11f302fe776cf174ea18cc0193ce8cad8b (diff)
parent5b1b17df82eeec473a24eb3969b1e48ec2785821 (diff)
downloadchouette-core-59038e7a772f88cd9f22891b50d96e4236c04515.tar.bz2
Merge branch 'master' of github.com:af83/stif-boiv
-rw-r--r--app/models/compliance_control.rb2
-rw-r--r--db/migrate/20171016074044_set_code_uiqueness_in_compliance_control.rb5
-rw-r--r--db/schema.rb3
-rw-r--r--spec/lib/compliance_control_set_copier_spec.rb6
4 files changed, 11 insertions, 5 deletions
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
index bfbc075c6..baf491e8a 100644
--- a/app/models/compliance_control.rb
+++ b/app/models/compliance_control.rb
@@ -8,7 +8,7 @@ class ComplianceControl < ActiveRecord::Base
validates :criticity, presence: true
validates :name, presence: true
- validates :code, presence: true
+ validates :code, presence: true, uniqueness: { scope: :compliance_control_set }
validates :origin_code, presence: true
validates :compliance_control_set, presence: true
diff --git a/db/migrate/20171016074044_set_code_uiqueness_in_compliance_control.rb b/db/migrate/20171016074044_set_code_uiqueness_in_compliance_control.rb
new file mode 100644
index 000000000..be43dbcf5
--- /dev/null
+++ b/db/migrate/20171016074044_set_code_uiqueness_in_compliance_control.rb
@@ -0,0 +1,5 @@
+class SetCodeUiquenessInComplianceControl < ActiveRecord::Migration
+ def change
+ add_index :compliance_controls, [:code, :compliance_control_set_id], unique: true
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 38ed0d807..181c83402 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20171010202716) do
+ActiveRecord::Schema.define(version: 20171016074044) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -256,6 +256,7 @@ ActiveRecord::Schema.define(version: 20171010202716) do
t.integer "compliance_control_block_id"
end
+ add_index "compliance_controls", ["code", "compliance_control_set_id"], name: "index_compliance_controls_on_code_and_compliance_control_set_id", unique: true, using: :btree
add_index "compliance_controls", ["compliance_control_block_id"], name: "index_compliance_controls_on_compliance_control_block_id", using: :btree
add_index "compliance_controls", ["compliance_control_set_id"], name: "index_compliance_controls_on_compliance_control_set_id", using: :btree
diff --git a/spec/lib/compliance_control_set_copier_spec.rb b/spec/lib/compliance_control_set_copier_spec.rb
index 3cecc44d1..a9e576cf7 100644
--- a/spec/lib/compliance_control_set_copier_spec.rb
+++ b/spec/lib/compliance_control_set_copier_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe ComplianceControlSetCopier do
3.times.map{ |_| create :compliance_control_block, compliance_control_set: cc_set }
}
let!(:direct_ccs){
- 3.times.map{ |n| create :compliance_control, compliance_control_set: cc_set, name: "direct #{n.succ}" }
+ 3.times.map{ |n| create :compliance_control, compliance_control_set: cc_set, name: "direct #{n.succ}", code: "direct-#{n.succ}" }
}
# Needed to check we do not dulicate a node (compliance_control) twice
let!(:indirect_ccs){
@@ -36,7 +36,7 @@ RSpec.describe ComplianceControlSetCopier do
cc.update compliance_control_block_id: cc_block.id
end
cc_blox.each_with_index.map{ | cc_block, n |
- create(:compliance_control, compliance_control_set: cc_set, compliance_control_block: cc_block, name: "indirect #{n.succ}")
+ create(:compliance_control, compliance_control_set: cc_set, compliance_control_block: cc_block, name: "indirect #{n.succ}", code: "indirect-#{n.succ}")
}
}
@@ -94,7 +94,7 @@ RSpec.describe ComplianceControlSetCopier do
# Control/Check
att_names = %w{ control_attributes code criticity comment origin_code }
expected = control.attributes.values_at(*att_names) << mk_name(control.name)
- actual = cck.attributes.values_at(*(att_names << 'name'))
+ actual = cck.attributes.values_at(*(att_names << 'name'))
expect( actual ).to eq( expected )