#-*- coding: utf-8 -*-
+#
+# Système de gestion des adhésions de Nos oignons
+# Copyright © 2013-2014 Nos oignons <contact@nos-oignons.net>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
def init_db
@member_db_path = File.join(current_dir, NosOignons::MEMBERS_DB_DIR)
create_new_member(name, joined_on, paid_on)
end
-Given /^(?:une base )?avec (\w+) qui doit renouveller sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary|
+Given /^une base avec (\w+), membre (\w+), ayant cotisé le ([0-9-]+)$/ do |name, member_id, paid_on|
+ create_new_member(name, paid_on, paid_on)
+ expect(File.read(File.join(current_dir, member_filename_for_id(member_id)))).to include(name)
+end
+
+Given /^une base avec (\w+), membre (\w+), n'ayant jamais cotisé$/ do |name, member_id|
+ joined_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
+ create_new_member(name, joined_on, nil)
+ expect(File.read(File.join(current_dir, member_filename_for_id(member_id)))).to include(name)
+end
+
+Given /^une base avec uniquement (\w+), membre (\w+)$/ do |name, member_id|
+ paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
+ create_new_member(name, paid_on, paid_on)
+ member_path = File.join(current_dir, member_filename_for_id(member_id))
+ expect(File.read(member_path)).to include(name)
+ expect(Dir.glob("#{@member_db_path}/[0-9]*")).to have(1).member
+end
+
+
+Given /^(?:une base )?avec (\w+) qui doit renouveler sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary|
now = Time.now
paid_on = Time.new(now.year - 1, now.month, now.day).to_date + days_before_anniversary.to_i
joined_on = paid_on