aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2017-11-17 07:47:56 +0100
committerGitHub2017-11-17 07:47:56 +0100
commitf677c08029ccb3b910ab6a2401fa56ccacb2b4d9 (patch)
treeed32ae6dea7ee345eef63aca0ad4b69b5e2d3d5b
parent364aa6c5129787f93591e78473e1d95aa35444c7 (diff)
parenta9c16ee132e242ed4304c2b5be0c49e31cde9d85 (diff)
downloadchouette-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.rb9
-rw-r--r--spec/models/netex_import_spec.rb28
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