aboutsummaryrefslogtreecommitdiffstats
path: root/spec/models/referential_spec.rb
diff options
context:
space:
mode:
authorAlban Peignier2016-11-19 19:56:51 +0100
committerAlban Peignier2016-11-19 19:59:24 +0100
commit80b934e7405cc70ec577e9de499bde881020caa4 (patch)
tree4745099db154ba43676c007915e4bccaede0e19f /spec/models/referential_spec.rb
parentbc1ec22d68233c74cbc93b2810f4e479a5e4b5ff (diff)
downloadchouette-core-80b934e7405cc70ec577e9de499bde881020caa4.tar.bz2
Finalize ReferentialMetadata model support. Refs #1786
Diffstat (limited to 'spec/models/referential_spec.rb')
-rw-r--r--spec/models/referential_spec.rb67
1 files changed, 64 insertions, 3 deletions
diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb
index c76b157f8..18c77bb92 100644
--- a/spec/models/referential_spec.rb
+++ b/spec/models/referential_spec.rb
@@ -1,14 +1,14 @@
require 'spec_helper'
describe Referential, :type => :model do
- let(:ref) { create :referential }
+ let(:ref) { create :referential, metadatas: [create(:referential_metadata)] }
# it "create a rule_parameter_set" do
# referential = create(:referential)
#expect(referential.rule_parameter_sets.size).to eq(1)
# end
- it { should have_many(:referential_metadatas) }
+ it { should have_many(:metadatas) }
it { should belong_to(:workbench) }
context "Cloning referential" do
@@ -18,8 +18,69 @@ describe Referential, :type => :model do
expect { cloned }.to change{ReferentialCloning.count}.by(1)
end
+ def metadatas_attributes(referential)
+ referential.metadatas.map { |m| [ m.periodes, m.line_ids ] }
+ end
+
it 'should clone referential_metadatas' do
- expect(cloned.referential_metadatas).not_to be_empty
+ expect(metadatas_attributes(cloned)).to eq(metadatas_attributes(ref))
end
end
+
+ describe "metadatas" do
+ context "nested attributes support" do
+ let(:attributes) do
+ {
+ "organisation_id" => first_organisation.id,
+ "name"=>"Test",
+ "slug"=>"test",
+ "prefix"=>"test",
+ "time_zone"=>"American Samoa",
+ "upper_corner"=>"51.1,8.23",
+ "lower_corner"=>"42.25,-5.2",
+ "data_format"=>"neptune",
+ "metadatas_attributes"=> {
+ "0"=> {
+ "first_period_begin(3i)"=>"19",
+ "first_period_begin(2i)"=>"11",
+ "first_period_begin(1i)"=>"2016",
+ "first_period_end(3i)"=>"19",
+ "first_period_end(2i)"=>"12",
+ "first_period_end(1i)"=>"2016",
+ "lines"=> [""] + lines.map { |l| l.id.to_s }
+ }
+ },
+ "workbench_id"=>"1",
+ }
+ end
+
+ let(:lines) { create_list(:line, 3)}
+
+ let(:new_referential) { Referential.new(attributes) }
+ let(:first_metadata) { new_referential.metadatas.first }
+
+ it "should create a metadata" do
+ expect(new_referential.metadatas.size).to eq(1)
+ end
+
+ it "should define first_period_begin" do
+ expect(first_metadata.first_period_begin).to eq(Date.new(2016,11,19))
+ end
+
+ it "should define first_period_end" do
+ expect(first_metadata.first_period_end).to eq(Date.new(2016,12,19))
+ end
+
+ it "should define period" do
+ new_referential.save!
+ expect(first_metadata.first_period).to eq(Range.new(Date.new(2016,11,19), Date.new(2016,12,19)))
+ end
+
+ it "should define period" do
+ new_referential.save!
+ expect(first_metadata.lines).to eq(lines)
+ end
+ end
+ end
+
end