aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/compliance_check.rb8
-rw-r--r--app/models/compliance_check_block.rb3
-rw-r--r--app/models/compliance_check_resource.rb5
-rw-r--r--app/models/compliance_check_result.rb5
-rw-r--r--app/models/compliance_check_set.rb10
-rw-r--r--app/models/compliance_control.rb9
-rw-r--r--app/models/compliance_control_block.rb3
-rw-r--r--app/models/compliance_control_set.rb3
-rw-r--r--config/initializers/apartment.rb9
-rw-r--r--db/migrate/20131029115820_create_compliance_check_results.rb23
-rw-r--r--db/migrate/20170905101656_create_compliance_control_sets.rb10
-rw-r--r--db/migrate/20170905122539_create_compliance_control_blocks.rb11
-rw-r--r--db/migrate/20170905123421_create_compliance_controls.rb16
-rw-r--r--db/migrate/20170905130413_create_compliance_check_sets.rb14
-rw-r--r--db/migrate/20170905135646_create_compliance_check_blocks.rb11
-rw-r--r--db/migrate/20170906084628_create_compliance_checks.rb16
-rw-r--r--db/migrate/20170906091136_create_compliance_check_resources.rb13
-rw-r--r--db/migrate/20170906092619_create_compliance_check_results.rb13
-rw-r--r--db/schema.rb113
-rw-r--r--spec/factories/compliance_check_blocks.rb6
-rw-r--r--spec/factories/compliance_check_resources.rb6
-rw-r--r--spec/factories/compliance_check_results.rb7
-rw-r--r--spec/factories/compliance_check_sets.rb8
-rw-r--r--spec/factories/compliance_checks.rb11
-rw-r--r--spec/factories/compliance_control_blocks.rb6
-rw-r--r--spec/factories/compliance_control_sets.rb6
-rw-r--r--spec/factories/compliance_controls.rb11
-rw-r--r--spec/models/compliance_check_block_spec.rb9
-rw-r--r--spec/models/compliance_check_resource_spec.rb7
-rw-r--r--spec/models/compliance_check_result_spec.rb10
-rw-r--r--spec/models/compliance_check_set_spec.rb12
-rw-r--r--spec/models/compliance_check_spec.rb14
-rw-r--r--spec/models/compliance_control_block_spec.rb9
-rw-r--r--spec/models/compliance_control_set_spec.rb9
-rw-r--r--spec/models/compliance_control_spec.rb14
35 files changed, 413 insertions, 27 deletions
diff --git a/app/models/compliance_check.rb b/app/models/compliance_check.rb
index a9dbc4211..85cf5e37e 100644
--- a/app/models/compliance_check.rb
+++ b/app/models/compliance_check.rb
@@ -1,3 +1,9 @@
-class ComplianceCheck
+class ComplianceCheck < ActiveRecord::Base
+ belongs_to :compliance_check_set
+ belongs_to :compliance_check_block
+ enum criticity: [:info, :warning, :error]
+ validates :criticity, presence: true
+ validates :name, presence: true
+ validates :code, presence: true
end
diff --git a/app/models/compliance_check_block.rb b/app/models/compliance_check_block.rb
new file mode 100644
index 000000000..035c03ed9
--- /dev/null
+++ b/app/models/compliance_check_block.rb
@@ -0,0 +1,3 @@
+class ComplianceCheckBlock < ActiveRecord::Base
+ belongs_to :compliance_check_set
+end
diff --git a/app/models/compliance_check_resource.rb b/app/models/compliance_check_resource.rb
new file mode 100644
index 000000000..7826f00c3
--- /dev/null
+++ b/app/models/compliance_check_resource.rb
@@ -0,0 +1,5 @@
+class ComplianceCheckResource < ActiveRecord::Base
+ extend Enumerize
+
+ enumerize :status, in: %w[new successful warning failed]
+end
diff --git a/app/models/compliance_check_result.rb b/app/models/compliance_check_result.rb
index 06f8649f5..161e45189 100644
--- a/app/models/compliance_check_result.rb
+++ b/app/models/compliance_check_result.rb
@@ -1,3 +1,4 @@
-class ComplianceCheckResult
-
+class ComplianceCheckResult < ActiveRecord::Base
+ belongs_to :compliance_check
+ belongs_to :compliance_check_resource
end
diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb
new file mode 100644
index 000000000..7b6400a21
--- /dev/null
+++ b/app/models/compliance_check_set.rb
@@ -0,0 +1,10 @@
+class ComplianceCheckSet < ActiveRecord::Base
+ extend Enumerize
+
+ belongs_to :referential
+ belongs_to :compliance_control_set
+ belongs_to :workbench
+ belongs_to :parent, polymorphic: true
+
+ enumerize :status, in: %w[new pending successful warning failed running aborted canceled]
+end
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
new file mode 100644
index 000000000..64556b524
--- /dev/null
+++ b/app/models/compliance_control.rb
@@ -0,0 +1,9 @@
+class ComplianceControl < ActiveRecord::Base
+ belongs_to :compliance_control_set
+ belongs_to :compliance_control_block
+
+ enum criticity: [:info, :warning, :error]
+ validates :criticity, presence: true
+ validates :name, presence: true
+ validates :code, presence: true
+end
diff --git a/app/models/compliance_control_block.rb b/app/models/compliance_control_block.rb
new file mode 100644
index 000000000..cf5a9d72b
--- /dev/null
+++ b/app/models/compliance_control_block.rb
@@ -0,0 +1,3 @@
+class ComplianceControlBlock < ActiveRecord::Base
+ belongs_to :compliance_control_set
+end
diff --git a/app/models/compliance_control_set.rb b/app/models/compliance_control_set.rb
new file mode 100644
index 000000000..7801eb612
--- /dev/null
+++ b/app/models/compliance_control_set.rb
@@ -0,0 +1,3 @@
+class ComplianceControlSet < ActiveRecord::Base
+ belongs_to :organisation
+end
diff --git a/config/initializers/apartment.rb b/config/initializers/apartment.rb
index e1e86449c..0d65c3505 100644
--- a/config/initializers/apartment.rb
+++ b/config/initializers/apartment.rb
@@ -46,7 +46,14 @@ Apartment.configure do |config|
'NetexImport',
'WorkbenchImport',
'ImportMessage',
- 'ImportResource'
+ 'ImportResource',
+ 'ComplianceControl',
+ 'ComplianceControlSet',
+ 'ComplianceControlBlock',
+ 'ComplianceCheck',
+ 'ComplianceCheckSet',
+ 'ComplianceCheckBlock',
+ 'ComplianceCheckResource',
]
# use postgres schemas?
diff --git a/db/migrate/20131029115820_create_compliance_check_results.rb b/db/migrate/20131029115820_create_compliance_check_results.rb
deleted file mode 100644
index 7f5c8e436..000000000
--- a/db/migrate/20131029115820_create_compliance_check_results.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-class CreateComplianceCheckResults < ActiveRecord::Migration
- def up
- unless table_exists? :compliance_check_results
- create_table :compliance_check_results do |t|
- t.belongs_to :compliance_check_task , :null => :no ,:limit => 8
- t.string :rule_code # rule code value
- t.string :severity # warning, error, improvement
- t.string :status # NA, OK, NOK
- t.integer :violation_count # number of violation occurences
- t.text :detail # detail of violation location
- t.timestamps
- end
- add_foreign_key :compliance_check_results, :compliance_check_tasks, :on_delete => :cascade
- end
- end
-
- def down
- if table_exists? :compliance_check_results
- execute "drop table compliance_check_results"
- # drop_table :compliance_check_results
- end
- end
-end
diff --git a/db/migrate/20170905101656_create_compliance_control_sets.rb b/db/migrate/20170905101656_create_compliance_control_sets.rb
new file mode 100644
index 000000000..d074267cd
--- /dev/null
+++ b/db/migrate/20170905101656_create_compliance_control_sets.rb
@@ -0,0 +1,10 @@
+class CreateComplianceControlSets < ActiveRecord::Migration
+ def change
+ create_table :compliance_control_sets do |t|
+ t.string :name
+ t.references :organisation, index: true, foreign_key: true
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/migrate/20170905122539_create_compliance_control_blocks.rb b/db/migrate/20170905122539_create_compliance_control_blocks.rb
new file mode 100644
index 000000000..54ed027ff
--- /dev/null
+++ b/db/migrate/20170905122539_create_compliance_control_blocks.rb
@@ -0,0 +1,11 @@
+class CreateComplianceControlBlocks < ActiveRecord::Migration
+ def change
+ create_table :compliance_control_blocks do |t|
+ t.string :name
+ t.hstore :condition_attributes
+ t.references :compliance_control_set, index: true, foreign_key: true
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/migrate/20170905123421_create_compliance_controls.rb b/db/migrate/20170905123421_create_compliance_controls.rb
new file mode 100644
index 000000000..6b507bb8d
--- /dev/null
+++ b/db/migrate/20170905123421_create_compliance_controls.rb
@@ -0,0 +1,16 @@
+class CreateComplianceControls < ActiveRecord::Migration
+ def change
+ create_table :compliance_controls do |t|
+ t.references :compliance_control_set, index: true, foreign_key: true
+ t.references :compliance_control_block, index: true, foreign_key: true
+ t.string :type
+ t.json :control_attributes
+ t.string :name
+ t.string :code
+ t.integer :criticity
+ t.text :comment
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/migrate/20170905130413_create_compliance_check_sets.rb b/db/migrate/20170905130413_create_compliance_check_sets.rb
new file mode 100644
index 000000000..21055a3f2
--- /dev/null
+++ b/db/migrate/20170905130413_create_compliance_check_sets.rb
@@ -0,0 +1,14 @@
+class CreateComplianceCheckSets < ActiveRecord::Migration
+ def change
+ create_table :compliance_check_sets do |t|
+ t.references :referential, index: true, foreign_key: true
+ t.references :compliance_control_set, index: true, foreign_key: true
+ t.references :workbench, index: true, foreign_key: true
+ t.string :creator
+ t.string :status
+ t.references :parent, polymorphic: true, index: true
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/migrate/20170905135646_create_compliance_check_blocks.rb b/db/migrate/20170905135646_create_compliance_check_blocks.rb
new file mode 100644
index 000000000..c461e656b
--- /dev/null
+++ b/db/migrate/20170905135646_create_compliance_check_blocks.rb
@@ -0,0 +1,11 @@
+class CreateComplianceCheckBlocks < ActiveRecord::Migration
+ def change
+ create_table :compliance_check_blocks do |t|
+ t.string :name
+ t.hstore :condition_attributes
+ t.references :compliance_check_set, index: true, foreign_key: true
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/migrate/20170906084628_create_compliance_checks.rb b/db/migrate/20170906084628_create_compliance_checks.rb
new file mode 100644
index 000000000..1d6bdaaf2
--- /dev/null
+++ b/db/migrate/20170906084628_create_compliance_checks.rb
@@ -0,0 +1,16 @@
+class CreateComplianceChecks < ActiveRecord::Migration
+ def change
+ create_table :compliance_checks do |t|
+ t.references :compliance_check_set, index: true, foreign_key: true
+ t.references :compliance_check_block, index: true, foreign_key: true
+ t.string :type
+ t.json :control_attributes
+ t.string :name
+ t.string :code
+ t.integer :criticity
+ t.text :comment
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/migrate/20170906091136_create_compliance_check_resources.rb b/db/migrate/20170906091136_create_compliance_check_resources.rb
new file mode 100644
index 000000000..45713fed5
--- /dev/null
+++ b/db/migrate/20170906091136_create_compliance_check_resources.rb
@@ -0,0 +1,13 @@
+class CreateComplianceCheckResources < ActiveRecord::Migration
+ def change
+ create_table :compliance_check_resources do |t|
+ t.string :status
+ t.string :name
+ t.string :type
+ t.string :reference
+ t.hstore :metrics
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/migrate/20170906092619_create_compliance_check_results.rb b/db/migrate/20170906092619_create_compliance_check_results.rb
new file mode 100644
index 000000000..e917d384e
--- /dev/null
+++ b/db/migrate/20170906092619_create_compliance_check_results.rb
@@ -0,0 +1,13 @@
+class CreateComplianceCheckResults < ActiveRecord::Migration
+ def change
+ create_table :compliance_check_results do |t|
+ t.references :compliance_check, index: true, foreign_key: true
+ t.references :compliance_check_resource, index: true, foreign_key: true
+ t.string :message_key
+ t.hstore :message_attributes
+ t.hstore :resource_attributes
+
+ t.timestamps null: false
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 98e60c909..9207590b5 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -145,6 +145,107 @@ ActiveRecord::Schema.define(version: 20170907082913) do
add_index "companies", ["objectid"], name: "companies_objectid_key", unique: true, using: :btree
add_index "companies", ["registration_number"], name: "companies_registration_number_key", using: :btree
+ create_table "compliance_check_blocks", id: :bigserial, force: :cascade do |t|
+ t.string "name"
+ t.hstore "condition_attributes"
+ t.integer "compliance_check_set_id"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ add_index "compliance_check_blocks", ["compliance_check_set_id"], name: "index_compliance_check_blocks_on_compliance_check_set_id", using: :btree
+
+ create_table "compliance_check_resources", id: :bigserial, force: :cascade do |t|
+ t.string "status"
+ t.string "name"
+ t.string "type"
+ t.string "reference"
+ t.hstore "metrics"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ create_table "compliance_check_results", id: :bigserial, force: :cascade do |t|
+ t.integer "compliance_check_id"
+ t.integer "compliance_check_resource_id"
+ t.string "message_key"
+ t.hstore "message_attributes"
+ t.hstore "resource_attributes"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ add_index "compliance_check_results", ["compliance_check_id"], name: "index_compliance_check_results_on_compliance_check_id", using: :btree
+ add_index "compliance_check_results", ["compliance_check_resource_id"], name: "index_compliance_check_results_on_compliance_check_resource_id", using: :btree
+
+ create_table "compliance_check_sets", id: :bigserial, force: :cascade do |t|
+ t.integer "referential_id"
+ t.integer "compliance_control_set_id"
+ t.integer "workbench_id"
+ t.string "creator"
+ t.string "status"
+ t.integer "parent_id"
+ t.string "parent_type"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ add_index "compliance_check_sets", ["compliance_control_set_id"], name: "index_compliance_check_sets_on_compliance_control_set_id", using: :btree
+ add_index "compliance_check_sets", ["parent_type", "parent_id"], name: "index_compliance_check_sets_on_parent_type_and_parent_id", using: :btree
+ add_index "compliance_check_sets", ["referential_id"], name: "index_compliance_check_sets_on_referential_id", using: :btree
+ add_index "compliance_check_sets", ["workbench_id"], name: "index_compliance_check_sets_on_workbench_id", using: :btree
+
+ create_table "compliance_checks", id: :bigserial, force: :cascade do |t|
+ t.integer "compliance_check_set_id"
+ t.integer "compliance_check_block_id"
+ t.string "type"
+ t.json "control_attributes"
+ t.string "name"
+ t.string "code"
+ t.integer "criticity"
+ t.text "comment"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ add_index "compliance_checks", ["compliance_check_block_id"], name: "index_compliance_checks_on_compliance_check_block_id", using: :btree
+ add_index "compliance_checks", ["compliance_check_set_id"], name: "index_compliance_checks_on_compliance_check_set_id", using: :btree
+
+ create_table "compliance_control_blocks", id: :bigserial, force: :cascade do |t|
+ t.string "name"
+ t.hstore "condition_attributes"
+ t.integer "compliance_control_set_id"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ add_index "compliance_control_blocks", ["compliance_control_set_id"], name: "index_compliance_control_blocks_on_compliance_control_set_id", using: :btree
+
+ create_table "compliance_control_sets", id: :bigserial, force: :cascade do |t|
+ t.string "name"
+ t.integer "organisation_id"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ add_index "compliance_control_sets", ["organisation_id"], name: "index_compliance_control_sets_on_organisation_id", using: :btree
+
+ create_table "compliance_controls", id: :bigserial, force: :cascade do |t|
+ t.integer "compliance_control_set_id"
+ t.integer "compliance_control_block_id"
+ t.string "type"
+ t.json "control_attributes"
+ t.string "name"
+ t.string "code"
+ t.integer "criticity"
+ t.text "comment"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ 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
+
create_table "connection_links", id: :bigserial, force: :cascade do |t|
t.integer "departure_id", limit: 8
t.integer "arrival_id", limit: 8
@@ -864,6 +965,18 @@ ActiveRecord::Schema.define(version: 20170907082913) do
add_foreign_key "access_links", "access_points", name: "aclk_acpt_fkey"
add_foreign_key "api_keys", "organisations"
+ add_foreign_key "compliance_check_blocks", "compliance_check_sets"
+ add_foreign_key "compliance_check_results", "compliance_check_resources"
+ add_foreign_key "compliance_check_results", "compliance_checks"
+ add_foreign_key "compliance_check_sets", "compliance_control_sets"
+ add_foreign_key "compliance_check_sets", "referentials"
+ add_foreign_key "compliance_check_sets", "workbenches"
+ add_foreign_key "compliance_checks", "compliance_check_blocks"
+ add_foreign_key "compliance_checks", "compliance_check_sets"
+ add_foreign_key "compliance_control_blocks", "compliance_control_sets"
+ add_foreign_key "compliance_control_sets", "organisations"
+ add_foreign_key "compliance_controls", "compliance_control_blocks"
+ add_foreign_key "compliance_controls", "compliance_control_sets"
add_foreign_key "group_of_lines_lines", "group_of_lines", name: "groupofline_group_fkey", on_delete: :cascade
add_foreign_key "journey_frequencies", "timebands", on_delete: :nullify
add_foreign_key "journey_frequencies", "vehicle_journeys", on_delete: :nullify
diff --git a/spec/factories/compliance_check_blocks.rb b/spec/factories/compliance_check_blocks.rb
new file mode 100644
index 000000000..0bd23c0d6
--- /dev/null
+++ b/spec/factories/compliance_check_blocks.rb
@@ -0,0 +1,6 @@
+FactoryGirl.define do
+ factory :compliance_check_block do
+ sequence(:name) { |n| "Compliance check block #{n}" }
+ association :compliance_check_set
+ end
+end
diff --git a/spec/factories/compliance_check_resources.rb b/spec/factories/compliance_check_resources.rb
new file mode 100644
index 000000000..813153be2
--- /dev/null
+++ b/spec/factories/compliance_check_resources.rb
@@ -0,0 +1,6 @@
+FactoryGirl.define do
+ factory :compliance_check_resource do
+ status :new
+ sequence(:name) { |n| "Compliance check resource #{n}" }
+ end
+end
diff --git a/spec/factories/compliance_check_results.rb b/spec/factories/compliance_check_results.rb
new file mode 100644
index 000000000..a56d77ce4
--- /dev/null
+++ b/spec/factories/compliance_check_results.rb
@@ -0,0 +1,7 @@
+FactoryGirl.define do
+ factory :compliance_check_result do
+ association :compliance_check
+ association :compliance_check_resource
+ message_key "message_key"
+ end
+end
diff --git a/spec/factories/compliance_check_sets.rb b/spec/factories/compliance_check_sets.rb
new file mode 100644
index 000000000..9fd6ef4e0
--- /dev/null
+++ b/spec/factories/compliance_check_sets.rb
@@ -0,0 +1,8 @@
+FactoryGirl.define do
+ factory :compliance_check_set do
+ status :new
+ association :referential
+ association :compliance_control_set
+ association :workbench
+ end
+end
diff --git a/spec/factories/compliance_checks.rb b/spec/factories/compliance_checks.rb
new file mode 100644
index 000000000..4009653da
--- /dev/null
+++ b/spec/factories/compliance_checks.rb
@@ -0,0 +1,11 @@
+FactoryGirl.define do
+ factory :compliance_check do
+ sequence(:name) { |n| "Compliance check #{n}" }
+ type "Type"
+ criticity :info
+ code "code"
+ comment "Text"
+ association :compliance_check_set
+ association :compliance_check_block
+ end
+end
diff --git a/spec/factories/compliance_control_blocks.rb b/spec/factories/compliance_control_blocks.rb
new file mode 100644
index 000000000..5bc45cc75
--- /dev/null
+++ b/spec/factories/compliance_control_blocks.rb
@@ -0,0 +1,6 @@
+FactoryGirl.define do
+ factory :compliance_control_block do
+ sequence(:name) { |n| "Compliance control block #{n}" }
+ association :compliance_control_set
+ end
+end
diff --git a/spec/factories/compliance_control_sets.rb b/spec/factories/compliance_control_sets.rb
new file mode 100644
index 000000000..5e4acf3c4
--- /dev/null
+++ b/spec/factories/compliance_control_sets.rb
@@ -0,0 +1,6 @@
+FactoryGirl.define do
+ factory :compliance_control_set do
+ sequence(:name) { |n| "Compliance control set #{n}" }
+ association :organisation
+ end
+end
diff --git a/spec/factories/compliance_controls.rb b/spec/factories/compliance_controls.rb
new file mode 100644
index 000000000..28b760383
--- /dev/null
+++ b/spec/factories/compliance_controls.rb
@@ -0,0 +1,11 @@
+FactoryGirl.define do
+ factory :compliance_control do
+ sequence(:name) { |n| "Compliance control #{n}" }
+ type "Type"
+ criticity :info
+ code "code"
+ comment "Text"
+ association :compliance_control_set
+ association :compliance_control_block
+ end
+end
diff --git a/spec/models/compliance_check_block_spec.rb b/spec/models/compliance_check_block_spec.rb
new file mode 100644
index 000000000..f581d5085
--- /dev/null
+++ b/spec/models/compliance_check_block_spec.rb
@@ -0,0 +1,9 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceCheckBlock, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_check_block)).to be_valid
+ end
+
+ it { should belong_to :compliance_check_set }
+end
diff --git a/spec/models/compliance_check_resource_spec.rb b/spec/models/compliance_check_resource_spec.rb
new file mode 100644
index 000000000..a9366bea2
--- /dev/null
+++ b/spec/models/compliance_check_resource_spec.rb
@@ -0,0 +1,7 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceCheckResource, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_check_resource)).to be_valid
+ end
+end
diff --git a/spec/models/compliance_check_result_spec.rb b/spec/models/compliance_check_result_spec.rb
new file mode 100644
index 000000000..95586862f
--- /dev/null
+++ b/spec/models/compliance_check_result_spec.rb
@@ -0,0 +1,10 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceCheckResult, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_check_result)).to be_valid
+ end
+
+ it { should belong_to :compliance_check }
+ it { should belong_to :compliance_check_resource }
+end
diff --git a/spec/models/compliance_check_set_spec.rb b/spec/models/compliance_check_set_spec.rb
new file mode 100644
index 000000000..6e53c9def
--- /dev/null
+++ b/spec/models/compliance_check_set_spec.rb
@@ -0,0 +1,12 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceCheckSet, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_check_set)).to be_valid
+ end
+
+ it { should belong_to :referential }
+ it { should belong_to :workbench }
+ it { should belong_to :compliance_control_set }
+ it { should belong_to :parent }
+end
diff --git a/spec/models/compliance_check_spec.rb b/spec/models/compliance_check_spec.rb
new file mode 100644
index 000000000..4fbc23d42
--- /dev/null
+++ b/spec/models/compliance_check_spec.rb
@@ -0,0 +1,14 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceCheck, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_check)).to be_valid
+ end
+
+ it { should belong_to :compliance_check_set }
+ it { should belong_to :compliance_check_block }
+
+ it { should validate_presence_of :criticity }
+ it { should validate_presence_of :name }
+ it { should validate_presence_of :code }
+end
diff --git a/spec/models/compliance_control_block_spec.rb b/spec/models/compliance_control_block_spec.rb
new file mode 100644
index 000000000..248049b0c
--- /dev/null
+++ b/spec/models/compliance_control_block_spec.rb
@@ -0,0 +1,9 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceControlBlock, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_control_block)).to be_valid
+ end
+
+ it { should belong_to :compliance_control_set }
+end
diff --git a/spec/models/compliance_control_set_spec.rb b/spec/models/compliance_control_set_spec.rb
new file mode 100644
index 000000000..fb46bc65a
--- /dev/null
+++ b/spec/models/compliance_control_set_spec.rb
@@ -0,0 +1,9 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceControlSet, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_control_set)).to be_valid
+ end
+
+ it { should belong_to :organisation }
+end
diff --git a/spec/models/compliance_control_spec.rb b/spec/models/compliance_control_spec.rb
new file mode 100644
index 000000000..b00ff4c5a
--- /dev/null
+++ b/spec/models/compliance_control_spec.rb
@@ -0,0 +1,14 @@
+require 'rails_helper'
+
+RSpec.describe ComplianceControl, type: :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:compliance_control)).to be_valid
+ end
+
+ it { should belong_to :compliance_control_set }
+ it { should belong_to :compliance_control_block }
+
+ it { should validate_presence_of :criticity }
+ it { should validate_presence_of :name }
+ it { should validate_presence_of :code }
+end