Fix: Make BIC optional for Girocode Version 2 (#622) · Shane32/QRCoder@4783cc7 (original) (raw)
`@@ -321,4 +321,138 @@ public void girocode_generator_sets_encoding_parameters()
`
321
321
`payload.EciMode.ShouldBe(EciMode.Default);
`
322
322
`payload.Version.ShouldBe(-1);
`
323
323
`}
`
``
324
+
``
325
`+
[Fact]
`
``
326
`+
public void girocode_generator_version2_with_null_bic_should_succeed()
`
``
327
`+
{
`
``
328
`+
var iban = "NL86INGB0002445588";
`
``
329
`+
var name = "a name";
`
``
330
`+
var remittanceInformation = "some info";
`
``
331
`+
var amount = 1337.99m;
`
``
332
+
``
333
`+
var payload = new PayloadGenerator.Girocode(
`
``
334
`+
iban: iban,
`
``
335
`+
bic: null,
`
``
336
`+
name: name,
`
``
337
`+
amount: amount,
`
``
338
`+
remittanceInformation: remittanceInformation,
`
``
339
`+
version: PayloadGenerator.Girocode.GirocodeVersion.Version2,
`
``
340
`+
encoding: PayloadGenerator.Girocode.GirocodeEncoding.UTF_8);
`
``
341
+
``
342
`+
payload
`
``
343
`+
.ToString()
`
``
344
`+
.ShouldBe("BCD\n002\n1\nSCT\n\na name\nNL86INGB0002445588\nEUR1337.99\n\n\nsome info\n");
`
``
345
`+
}
`
``
346
+
``
347
`+
[Fact]
`
``
348
`+
public void girocode_generator_version2_with_empty_bic_should_succeed()
`
``
349
`+
{
`
``
350
`+
var iban = "NL86INGB0002445588";
`
``
351
`+
var name = "a name";
`
``
352
`+
var remittanceInformation = "some info";
`
``
353
`+
var amount = 1337.99m;
`
``
354
+
``
355
`+
var payload = new PayloadGenerator.Girocode(
`
``
356
`+
iban: iban,
`
``
357
`+
bic: string.Empty,
`
``
358
`+
name: name,
`
``
359
`+
amount: amount,
`
``
360
`+
remittanceInformation: remittanceInformation,
`
``
361
`+
version: PayloadGenerator.Girocode.GirocodeVersion.Version2,
`
``
362
`+
encoding: PayloadGenerator.Girocode.GirocodeEncoding.UTF_8);
`
``
363
+
``
364
`+
payload
`
``
365
`+
.ToString()
`
``
366
`+
.ShouldBe("BCD\n002\n1\nSCT\n\na name\nNL86INGB0002445588\nEUR1337.99\n\n\nsome info\n");
`
``
367
`+
}
`
``
368
+
``
369
`+
[Fact]
`
``
370
`+
public void girocode_generator_version2_with_valid_bic_should_succeed()
`
``
371
`+
{
`
``
372
`+
var iban = "NL86INGB0002445588";
`
``
373
`+
var bic = "INGBNL2A";
`
``
374
`+
var name = "a name";
`
``
375
`+
var remittanceInformation = "some info";
`
``
376
`+
var amount = 1337.99m;
`
``
377
+
``
378
`+
var payload = new PayloadGenerator.Girocode(
`
``
379
`+
iban: iban,
`
``
380
`+
bic: bic,
`
``
381
`+
name: name,
`
``
382
`+
amount: amount,
`
``
383
`+
remittanceInformation: remittanceInformation,
`
``
384
`+
version: PayloadGenerator.Girocode.GirocodeVersion.Version2,
`
``
385
`+
encoding: PayloadGenerator.Girocode.GirocodeEncoding.UTF_8);
`
``
386
+
``
387
`+
payload
`
``
388
`+
.ToString()
`
``
389
`+
.ShouldBe("BCD\n002\n1\nSCT\nINGBNL2A\na name\nNL86INGB0002445588\nEUR1337.99\n\n\nsome info\n");
`
``
390
`+
}
`
``
391
+
``
392
`+
[Fact]
`
``
393
`+
public void girocode_generator_version2_with_invalid_bic_should_throw_exception()
`
``
394
`+
{
`
``
395
`+
var iban = "NL86INGB0002445588";
`
``
396
`+
var bic = "INVALID";
`
``
397
`+
var name = "a name";
`
``
398
`+
var remittanceInformation = "some info";
`
``
399
`+
var amount = 1337.99m;
`
``
400
+
``
401
`+
var exception = Record.Exception(() => new PayloadGenerator.Girocode(
`
``
402
`+
iban: iban,
`
``
403
`+
bic: bic,
`
``
404
`+
name: name,
`
``
405
`+
amount: amount,
`
``
406
`+
remittanceInformation: remittanceInformation,
`
``
407
`+
version: PayloadGenerator.Girocode.GirocodeVersion.Version2,
`
``
408
`+
encoding: PayloadGenerator.Girocode.GirocodeEncoding.UTF_8));
`
``
409
+
``
410
`+
Assert.NotNull(exception);
`
``
411
`+
Assert.IsType<PayloadGenerator.Girocode.GirocodeException>(exception);
`
``
412
`+
exception.Message.ShouldBe("The BIC entered isn't valid.");
`
``
413
`+
}
`
``
414
+
``
415
`+
[Fact]
`
``
416
`+
public void girocode_generator_version1_with_null_bic_should_throw_exception()
`
``
417
`+
{
`
``
418
`+
var iban = "NL86INGB0002445588";
`
``
419
`+
var name = "a name";
`
``
420
`+
var remittanceInformation = "some info";
`
``
421
`+
var amount = 1337.99m;
`
``
422
+
``
423
`+
var exception = Record.Exception(() => new PayloadGenerator.Girocode(
`
``
424
`+
iban: iban,
`
``
425
`+
bic: null,
`
``
426
`+
name: name,
`
``
427
`+
amount: amount,
`
``
428
`+
remittanceInformation: remittanceInformation,
`
``
429
`+
version: PayloadGenerator.Girocode.GirocodeVersion.Version1,
`
``
430
`+
encoding: PayloadGenerator.Girocode.GirocodeEncoding.UTF_8));
`
``
431
+
``
432
`+
Assert.NotNull(exception);
`
``
433
`+
Assert.IsType<PayloadGenerator.Girocode.GirocodeException>(exception);
`
``
434
`+
exception.Message.ShouldBe("The BIC entered isn't valid.");
`
``
435
`+
}
`
``
436
+
``
437
`+
[Fact]
`
``
438
`+
public void girocode_generator_version1_with_empty_bic_should_throw_exception()
`
``
439
`+
{
`
``
440
`+
var iban = "NL86INGB0002445588";
`
``
441
`+
var name = "a name";
`
``
442
`+
var remittanceInformation = "some info";
`
``
443
`+
var amount = 1337.99m;
`
``
444
+
``
445
`+
var exception = Record.Exception(() => new PayloadGenerator.Girocode(
`
``
446
`+
iban: iban,
`
``
447
`+
bic: string.Empty,
`
``
448
`+
name: name,
`
``
449
`+
amount: amount,
`
``
450
`+
remittanceInformation: remittanceInformation,
`
``
451
`+
version: PayloadGenerator.Girocode.GirocodeVersion.Version1,
`
``
452
`+
encoding: PayloadGenerator.Girocode.GirocodeEncoding.UTF_8));
`
``
453
+
``
454
`+
Assert.NotNull(exception);
`
``
455
`+
Assert.IsType<PayloadGenerator.Girocode.GirocodeException>(exception);
`
``
456
`+
exception.Message.ShouldBe("The BIC entered isn't valid.");
`
``
457
`+
}
`
324
458
`}
`