diff options
| author | cedricnjanga | 2017-10-16 15:00:38 +0200 | 
|---|---|---|
| committer | cedricnjanga | 2017-10-16 15:00:38 +0200 | 
| commit | 59038e7a772f88cd9f22891b50d96e4236c04515 (patch) | |
| tree | cbeb7442d819e7886eab0f81fa4096be64ad5b59 | |
| parent | a0734d11f302fe776cf174ea18cc0193ce8cad8b (diff) | |
| parent | 5b1b17df82eeec473a24eb3969b1e48ec2785821 (diff) | |
| download | chouette-core-59038e7a772f88cd9f22891b50d96e4236c04515.tar.bz2 | |
Merge branch 'master' of github.com:af83/stif-boiv
| -rw-r--r-- | app/models/compliance_control.rb | 2 | ||||
| -rw-r--r-- | db/migrate/20171016074044_set_code_uiqueness_in_compliance_control.rb | 5 | ||||
| -rw-r--r-- | db/schema.rb | 3 | ||||
| -rw-r--r-- | spec/lib/compliance_control_set_copier_spec.rb | 6 | 
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 )  | 
