From 8536514115cf732eec24348862e835bde52acdf1 Mon Sep 17 00:00:00 2001
From: Lunar <lunar@anargeek.net>
Date: Sat, 1 Jun 2013 11:09:31 +0200
Subject: [PATCH 1/1] Start implementing list-emails

---
 bin/list-emails                            |  6 +++
 features/list-emails.feature               | 47 ++++++++++++++++++++++
 features/step_definitions/commands.rb      |  8 ++++
 features/step_definitions/subscriptions.rb |  4 ++
 4 files changed, 65 insertions(+)
 create mode 100755 bin/list-emails
 create mode 100644 features/list-emails.feature

diff --git a/bin/list-emails b/bin/list-emails
new file mode 100755
index 0000000..5d3fb74
--- /dev/null
+++ b/bin/list-emails
@@ -0,0 +1,6 @@
+#!/usr/bin/ruby1.9.1
+#-*- coding: utf-8 -*-
+
+require 'rubygems'
+require 'bundler'
+Bundler.setup
diff --git a/features/list-emails.feature b/features/list-emails.feature
new file mode 100644
index 0000000..27c2a9e
--- /dev/null
+++ b/features/list-emails.feature
@@ -0,0 +1,47 @@
+# language: fr
+
+Fonctionnalité: obtenir les emails des membres à jour de cotisations
+  En tant que membre du C.A. de Nos oignons, je dois pouvoir obtenir
+  les emails des membres à jour de cotisation, afin, par exemple
+  de pouvoir démarrer un vote.
+
+  Scénario: Aucun membre enregistré
+    Soit une base de membres vide
+    Lorsque j'exécute list-emails
+    Alors la sortie doit-être vide
+
+  Scénario: Un membre à jour de cotisation
+    Soit une base avec Pierre, à jour de cotisation
+    Lorsque j'exécute list-emails
+    Alors la sortie doit être:
+      """
+      pierre@example.org
+      """
+
+  Scénario: Un ancien membre
+    Soit une base avec Pierre, qui n'a pas payé sa cotisation cette année
+    Lorsque j'exécute list-emails
+    Alors la sortie doit être vide
+
+  Scénario: Plusieurs membres à jour
+    Soit une base avec Pierre, à jour de cotisation
+    Et avec Jane, à jour de cotisation
+    Et avec Fatima, à jour de cotisation
+    Lorsque j'exécute list-emails
+    Alors la sortie doit être:
+      """
+      pierre@example.org
+      jane@example.org
+      fatima@example.org
+      """
+
+  Scénario: Des membres à jour et d'autres pas
+    Soit une base avec Pierre, qui n'a pas payé sa cotisation cette année
+    Et avec Jane, à jour de cotisation
+    Et avec Fatima, à jour de cotisation
+    Lorsque j'exécute list-emails
+    Alors la sortie doit être:
+      """
+      jane@example.org
+      fatima@example.org
+      """
diff --git a/features/step_definitions/commands.rb b/features/step_definitions/commands.rb
index d069730..ae6d798 100644
--- a/features/step_definitions/commands.rb
+++ b/features/step_definitions/commands.rb
@@ -1,3 +1,7 @@
+When /^j'exécute list\-emails$/ do
+  run_simple 'list-emails'
+end
+
 Then /^je ne dois pas avoir eu d'erreur$/ do
   assert_exit_status(0)
 end
@@ -5,3 +9,7 @@ end
 Then /^je dois voir comme erreur "(.*?)"$/ do |expected|
   assert_failing_with(expected)
 end
+
+Then /^la sortie doit-être vide$/ do
+  expect(all_output).to be_empty
+end
diff --git a/features/step_definitions/subscriptions.rb b/features/step_definitions/subscriptions.rb
index e8481f6..aa3365d 100644
--- a/features/step_definitions/subscriptions.rb
+++ b/features/step_definitions/subscriptions.rb
@@ -1,3 +1,7 @@
+Given /une base de membres vide$/ do
+  create_dir 'Membres'
+end
+
 When /^j'ajoute une fiche correcte pour une nouvelle adhésion$/ do
   @file = subscription_filename_for_id(new_id)
   write_file @file, render_subscription_file(EXTRA_SUBSCRIPTION)
-- 
2.39.5