diff options
| author | Luc Donnet | 2017-11-17 07:47:56 +0100 |
|---|---|---|
| committer | GitHub | 2017-11-17 07:47:56 +0100 |
| commit | f677c08029ccb3b910ab6a2401fa56ccacb2b4d9 (patch) | |
| tree | ed32ae6dea7ee345eef63aca0ad4b69b5e2d3d5b | |
| parent | 364aa6c5129787f93591e78473e1d95aa35444c7 (diff) | |
| parent | a9c16ee132e242ed4304c2b5be0c49e31cde9d85 (diff) | |
| download | chouette-core-f677c08029ccb3b910ab6a2401fa56ccacb2b4d9.tar.bz2 | |
Merge pull request #116 from af83/4962-when-WorkbenchImport-is-deleted-also-delete-associated-Referential-if-ready-false
4962 when workbench import is deleted also delete associated referential if ready false
| -rw-r--r-- | app/models/netex_import.rb | 9 | ||||
| -rw-r--r-- | spec/models/netex_import_spec.rb | 28 |
2 files changed, 37 insertions, 0 deletions
diff --git a/app/models/netex_import.rb b/app/models/netex_import.rb index 32939a741..b8702a561 100644 --- a/app/models/netex_import.rb +++ b/app/models/netex_import.rb @@ -1,6 +1,7 @@ require 'net/http' class NetexImport < Import after_commit :launch_java_import, on: :create + before_destroy :destroy_non_ready_referential validates_presence_of :parent @@ -16,4 +17,12 @@ class NetexImport < Import end end end + + private + + def destroy_non_ready_referential + unless referential.ready + referential.destroy + end + end end diff --git a/spec/models/netex_import_spec.rb b/spec/models/netex_import_spec.rb new file mode 100644 index 000000000..d52d475cc --- /dev/null +++ b/spec/models/netex_import_spec.rb @@ -0,0 +1,28 @@ +RSpec.describe NetexImport, type: :model do + describe "#destroy" do + it "must destroy its associated Referential if ready: false" do + workbench_import = create(:workbench_import) + referential_ready_false = create(:referential, ready: false) + referential_ready_true = create(:referential, ready: true) + create( + :netex_import, + parent: workbench_import, + referential: referential_ready_false + ) + create( + :netex_import, + parent: workbench_import, + referential: referential_ready_true + ) + + workbench_import.destroy + + expect( + Referential.where(id: referential_ready_false.id).exists? + ).to be false + expect( + Referential.where(id: referential_ready_true.id).exists? + ).to be true + end + end +end |
