adherent 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -94,18 +94,99 @@ describe 'Payment', :type => :model do
94
94
 
95
95
  end
96
96
 
97
- describe 'imputation on adh' do
97
+
98
+ describe 'Imputation on adh' do
98
99
 
100
+ # soit un paiement et une adhésion, lorsqu'on impute le paiement
101
+ # sur cette adhésion, il est créé un réglement pour le montant adapté,
102
+ # soit la totalité de l'adhésion si le non imputé est supérieur
103
+ # soit le montant non imputé si le non imputé est inférieur
99
104
  before(:each) do
100
- new_payment
105
+ @m = create_members(1).first # on créé un member
106
+ @p = create_payment(@m) # un payement de 50€ par défaut
107
+ end
108
+
109
+ after(:each) do
110
+ Adherent::Adhesion.delete_all
111
+ end
112
+
113
+ it 'avec un adhésion de 50' do
114
+ @a = Adherent::Adhesion.create!(member_id:@m.id, amount:50,
115
+ from_date:Date.today, to_date:(Date.today.years_since(1)))
116
+ @p.imputation_on_adh(@a.id)
117
+ expect(@p.non_impute).to eq 0
118
+ expect(@a).to be_is_paid
119
+ end
120
+
121
+ it 'avec un adhésion de 60' do
122
+ @a = Adherent::Adhesion.create!(member_id:@m.id, amount:60,
123
+ from_date:Date.today, to_date:(Date.today.years_since(1)))
124
+ @p.imputation_on_adh(@a.id)
125
+ expect(@p.non_impute).to eq 0
126
+ expect(@a).not_to be_is_paid
127
+ expect(@a.due).to eq 10
128
+ end
129
+
130
+ it 'avec un adhésion de 60' do
131
+ @a = Adherent::Adhesion.create!(member_id:@m.id, amount:40,
132
+ from_date:Date.today, to_date:(Date.today.years_since(1)))
133
+ @p.imputation_on_adh(@a.id)
134
+ expect(@p.non_impute).to eq 10
135
+ expect(@a).to be_is_paid
136
+ expect(@a.due).to eq 0
137
+ end
138
+
139
+
140
+ end
141
+
142
+ describe 'list_imputations', wip:true do
143
+
144
+ # la liste des imputations donne un Array d'information sur les
145
+ # règlements associés à un paiement, array construit avec la méthode
146
+ # member.to_s.
147
+ # La méthode ne doit pas créer d'erreur même si l'adhésion ou le membre
148
+ # n'existe plus
149
+ before(:each) do
150
+ @m = create_members(1).first # on créé un member
151
+ @p = create_payment(@m) # un payement de 50€ par défaut
152
+ end
153
+
154
+ after(:each) do
155
+ Adherent::Adhesion.delete_all
156
+ end
157
+
158
+ it 'avec une seule imputation' do
159
+ @a = Adherent::Adhesion.create!(member_id:@m.id, amount:50,
160
+ from_date:Date.today, to_date:(Date.today.years_since(1)))
161
+ @p.imputation_on_adh(@a.id)
162
+ @p.reglements(true)
163
+ expect(@p.list_imputations).to eq [member:@m.to_s, amount:50, r_id:@p.reglements.first.id]
101
164
  end
102
165
 
103
- it 'on peut imputer un montant sur une adhesion quelconque' do
104
- expect(Adherent::Adhesion).to receive(:find).with(1).and_return(@adh = double(Adherent::Adhesion))
105
- expect(@adh).to receive(:add_reglement).with(@pay.id, @pay.amount)
106
- @pay.imputation_on_adh(1)
166
+ it 'avec deux imputations' do
167
+ @a = Adherent::Adhesion.create!(member_id:@m.id, amount:10,
168
+ from_date:Date.today, to_date:(Date.today.years_since(1)))
169
+ @p.imputation_on_adh(@a.id)
170
+ @a2 = Adherent::Adhesion.create!(member_id:@m.id, amount:10,
171
+ from_date:Date.today, to_date:(Date.today.years_since(1)))
172
+ @p.imputation_on_adh(@a2.id)
173
+ @p.reglements(true)
174
+ expect(@p.list_imputations).
175
+ to eq([{member:@m.to_s, amount:10, r_id:@p.reglements.first.id},
176
+ {member:@m.to_s, amount:10, r_id:@p.reglements.last.id}])
107
177
  end
108
178
 
179
+ it 'avec un adhérent effacé, affiche Adhésion inconnue' do
180
+ @a = Adherent::Adhesion.create!(member_id:@m.id, amount:50,
181
+ from_date:Date.today, to_date:(Date.today.years_since(1)))
182
+ @p.imputation_on_adh(@a.id)
183
+ @p.reglements(true)
184
+ @a.delete
185
+ expect(@p.list_imputations).
186
+ to eq [{member:'Inconnue', amount:50, r_id:@p.reglements.first.id}]
187
+ end
188
+
189
+
109
190
 
110
191
  end
111
192
 
@@ -124,6 +124,10 @@ describe Adherent::QueryMember, :type => :model do
124
124
  [Adherent::QueryMember.new(number:'Adh 001', name:'Dupont', forname:'Jules',
125
125
  birthdate:Date.civil(1955,6,6), mail:'bonjour@example.com',
126
126
  tel:'01.02.03.04.05', t_adhesions:22.26, t_reglements:0,
127
+ office:'03.20.14.64.30',
128
+ zip:'59000',
129
+ address:'Place de la Mairie',
130
+ city:'LILLE',
127
131
  m_to_date:((Date.today.beginning_of_year >> 2) -1))
128
132
  ]
129
133
  end
@@ -139,11 +143,11 @@ describe Adherent::QueryMember, :type => :model do
139
143
  @lignes = csv.split("\n")
140
144
  end
141
145
  it 'la ligne de titre' do
142
- expect(@lignes[0]).to eq("Numero\tNom\tPrénom\tDate de naissance\tMail\tTél\tDoit\tFin Adh.")
146
+ expect(@lignes[0]).to eq("Numero\tNom\tPrénom\tDate de naissance\tMail\tTél\tGsm\tBureau\tAdresse\tCode Postal\tVille\tDoit\tFin Adh.")
143
147
  end
144
148
 
145
149
  it 'une ligne de valeurs' do
146
- expect(@lignes[1]).to eq("Adh 001\tDupont\tJules\t06/06/1955\tbonjour@example.com\t01.02.03.04.05\t22,26\t#{I18n::l((Date.today.beginning_of_year>>2) -1)}")
150
+ expect(@lignes[1]).to eq("Adh 001\tDupont\tJules\t06/06/1955\tbonjour@example.com\t01.02.03.04.05\t\t03.20.14.64.30\tPlace de la Mairie\t59000\tLILLE\t22,26\t#{I18n::l((Date.today.beginning_of_year>>2) -1)}")
147
151
  end
148
152
 
149
153
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adherent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Claude Lepage