]> nos-oignons.net Git - gestion-adh.git/blobdiff - features/step_definitions/mailman.rb
Start implementing update-ag-subscribers
[gestion-adh.git] / features / step_definitions / mailman.rb
diff --git a/features/step_definitions/mailman.rb b/features/step_definitions/mailman.rb
new file mode 100644 (file)
index 0000000..ab98b18
--- /dev/null
@@ -0,0 +1,35 @@
+#-*- coding: utf-8 -*-
+
+require 'json'
+
+Before('@mailman') do
+  @mock_mailman_db = "#{current_dir}/mock_mailman.json"
+  init_mailman_mock_db({})
+  ENV['MOCK_MAILMAN_DB'] = @mock_mailman_db
+  @orig_path = ENV['PATH']
+  ENV['PATH'] = "#{File.expand_path('../../support/mock_mailman', __FILE__)}:#{@orig_path}"
+end
+
+After('@mailman') do
+  ENV['PATH'] = @orig_path
+  FileUtils.remove_entry_secure @mock_mailman_db
+end
+
+def init_mailman_mock_db(dict)
+  File.open(@mock_mailman_db, 'w') { |f| f.write(JSON.dump(dict)) }
+end
+
+def mailman_mock_db
+  JSON.load(File.open(@mock_mailman_db))
+end
+
+Given /^une liste ag@ avec comme emails inscrits:$/ do |subscriber_list|
+  emails = subscriber_list.strip.split
+  init_mailman_mock_db('ag' => emails)
+end
+
+Then /^la liste ag@ doit avoir comme emails inscrits:$/ do |expected|
+  emails = expected.strip.split.sort
+  expect(mailman_mock_db['ag'].sort).to eql(emails)
+end
+