diff options
| author | RobertDober | 2017-04-14 17:46:54 +0200 | 
|---|---|---|
| committer | Robert | 2017-04-18 20:05:36 +0200 | 
| commit | d582f2868c0d8af42c18257f83974afbae619583 (patch) | |
| tree | 4b0bf6e2f8af332837dea443543d77170ae5ffee /spec/lib/af83 | |
| parent | 33e796dc89b36f7c57adb9d462c0cc35a15be623 (diff) | |
| download | chouette-core-d582f2868c0d8af42c18257f83974afbae619583.tar.bz2 | |
clone_schema fixed -> lib/sql/clone_schema.sql; lib/af83/stored_procedures.rb for sql stored procedure management; Refs #2864
Diffstat (limited to 'spec/lib/af83')
| -rw-r--r-- | spec/lib/af83/stored_procedure_spec.rb | 20 | ||||
| -rw-r--r-- | spec/lib/af83/stored_procedures/clone_schema_spec.rb | 19 | 
2 files changed, 39 insertions, 0 deletions
diff --git a/spec/lib/af83/stored_procedure_spec.rb b/spec/lib/af83/stored_procedure_spec.rb new file mode 100644 index 000000000..2530d7fc1 --- /dev/null +++ b/spec/lib/af83/stored_procedure_spec.rb @@ -0,0 +1,20 @@ +require 'rails_helper' + +RSpec.describe StoredProcedures do + + +  before do +    described_class.create_stored_procedure(:clone_schema) +  end + +  let( :source_schema_name ){ "parissudest201604" } +  let( :dest_schema_name ){ "#{source_schema_name}_v1"} + +  context "Error cases"  do +    it "raises an error if stored procedure does not exist" do +      expect{ described_class.invoke_stored_procedure(:idonotexist) } +      .to raise_error(ArgumentError, %r{no such stored procedure "idonotexist"}) +    end +  end + +end diff --git a/spec/lib/af83/stored_procedures/clone_schema_spec.rb b/spec/lib/af83/stored_procedures/clone_schema_spec.rb new file mode 100644 index 000000000..646e97d9f --- /dev/null +++ b/spec/lib/af83/stored_procedures/clone_schema_spec.rb @@ -0,0 +1,19 @@ +require 'rails_helper' + +RSpec.describe StoredProcedures do + +  include Support::PGCatalog +  context "clone_schema creates correct table in dest schema" do +    before do +      drop_schema!(dest_schema_name) +    end + +    it "creates the schema" do +      expect( get_fks!(dest_schema_name, "access_links") ).to be_empty +      described_class.invoke_stored_procedure(:clone_schema, source_schema_name, dest_schema_name, true) +      expect( get_fks!(dest_schema_name, "access_links") ) +      .to eq( [{"constraint_name"=>"aclk_acpt_fkey", +                "constraint_def"=>"FOREIGN KEY (access_point_id) REFERENCES parissudest201604_v1.access_points(id)"}]) +    end +  end +end  | 
