diff options
| author | Alban Peignier | 2016-11-19 19:56:51 +0100 | 
|---|---|---|
| committer | Alban Peignier | 2016-11-19 19:59:24 +0100 | 
| commit | 80b934e7405cc70ec577e9de499bde881020caa4 (patch) | |
| tree | 4745099db154ba43676c007915e4bccaede0e19f /spec/models/referential_spec.rb | |
| parent | bc1ec22d68233c74cbc93b2810f4e479a5e4b5ff (diff) | |
| download | chouette-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.rb | 67 | 
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 | 
