From 0354c84367cede7d738c79e9c0f116b2c0a178b2 Mon Sep 17 00:00:00 2001
From: Robert
Date: Thu, 14 Dec 2017 16:47:31 +0100
Subject: Refs: #5281@2h; Code Analysis first bugfix
- Rebased #5006 upoon master and created #5281 from #5006
- Setup regression test based on client provided input
- Fixed bug with multiple spurious directory occurances
---
spec/fixtures/regression-5281.zip | Bin 0 -> 21642 bytes
.../OFFRE_SNTYO_1_20170820120001/calendriers.xml | 145 ++++
.../OFFRE_SNTYO_1_20170820120001/commun.xml | 30 +
.../offre_C00166_05.xml | 459 ++++++++++
.../offre_C00168_08.xml | 667 +++++++++++++++
.../offre_C00171_11.xml | 473 ++++++++++
.../OFFRE_SNTYO_2_20170820120001/calendriers.xml | 145 ++++
.../OFFRE_SNTYO_2_20170820120001/commun.xml | 30 +
.../offre_C00163_01.xml | 497 +++++++++++
.../offre_C00164_03.xml | 951 +++++++++++++++++++++
.../offre_C00165_04.xml | 803 +++++++++++++++++
spec/services/zip_service_spec.rb | 26 +-
12 files changed, 4222 insertions(+), 4 deletions(-)
create mode 100644 spec/fixtures/regression-5281.zip
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/calendriers.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/commun.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00166_05.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00168_08.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00171_11.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/calendriers.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/commun.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00163_01.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00164_03.xml
create mode 100644 spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00165_04.xml
(limited to 'spec')
diff --git a/spec/fixtures/regression-5281.zip b/spec/fixtures/regression-5281.zip
new file mode 100644
index 000000000..2ff4ec66d
Binary files /dev/null and b/spec/fixtures/regression-5281.zip differ
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/calendriers.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/calendriers.xml
new file mode 100644
index 000000000..bc2b63527
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/calendriers.xml
@@ -0,0 +1,145 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+
+ 2017-06-25T00:00:00
+ 2017-12-31T00:00:00
+
+
+
+
+ Semaine
+
+
+ Monday
+
+
+ Tuesday
+
+
+ Wednesday
+
+
+ Thursday
+
+
+ Friday
+
+
+
+
+ Fin de semaine
+
+
+ Saturday
+
+
+ Sunday
+
+
+
+
+ Semaine vacances
+
+
+ Monday
+
+
+ Tuesday
+
+
+ Wednesday
+
+
+ Thursday
+
+
+ Friday
+
+
+
+
+ WE vacances
+
+
+ Saturday
+
+
+ Sunday
+
+
+
+
+ Service spécial
+
+
+ Restriction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2017-07-05
+
+ true
+
+
+ 2017-08-14
+
+ false
+
+
+ 2017-08-15
+
+ false
+
+
+ 2017-08-16
+
+ false
+
+
+ 2017-06-25T00:00:00
+ 2017-07-01T00:00:00
+
+
+ 2017-07-10T00:00:00
+ 2017-08-31T00:00:00
+
+
+ 2017-09-01T00:00:00
+ 2017-12-31T00:00:00
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/commun.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/commun.xml
new file mode 100644
index 000000000..b6337b65f
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/commun.xml
@@ -0,0 +1,30 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+
+
+
+ note numéro 1
+ 1
+
+
+
+ note numéro 2
+ 2
+
+
+
+ note numéro 3
+ 3
+
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00166_05.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00166_05.xml
new file mode 100644
index 000000000..fac9a3187
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00166_05.xml
@@ -0,0 +1,459 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+ Ligne 5
+
+
+
+
+
+
+ de rambouillet vers orphin
+ version="any"
+ outbound
+
+
+
+
+ de Orphin vers rambouillet
+ version="any"
+ inbound
+
+
+
+
+ vers orphin
+
+
+ vers rambouillet
+
+
+ vers orphin
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ Par là
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ Mission 1
+ 05011
+
+
+ Mission 2
+ 05021
+
+
+
+
+
+
+
+
+
+
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+ ITL 1
+
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+ ITL 2
+
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+
+
+
+
+
+ Course 1 s note 1
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 08:01:00.000
+ 0
+ 08:02:00.000
+ 0
+
+
+ 08:10:00.000
+ 0
+ 08:11:00.000
+ 0
+
+
+ 08:15:00.000
+ 0
+ 08:16:00.000
+ 0
+
+
+ 08:18:00.000
+ 0
+ 08:19:00.000
+ 0
+
+
+ 08:21:00.000
+ 0
+ 08:22:00.000
+ 0
+
+
+
+
+ Course 1 we not 2
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 09:01:00.000
+ 0
+ 09:02:00.000
+ 0
+
+
+ 09:10:00.000
+ 0
+ 09:11:00.000
+ 0
+
+
+ 09:15:00.000
+ 0
+ 09:16:00.000
+ 0
+
+
+ 09:18:00.000
+ 0
+ 09:19:00.000
+ 0
+
+
+ 09:21:00.000
+ 0
+ 09:22:00.000
+ 0
+
+
+
+
+ Course 1 exceptionnel note 1 et 2
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 10:01:00.000
+ 0
+ 10:02:00.000
+ 0
+
+
+ 10:10:00.000
+ 0
+ 10:11:00.000
+ 0
+
+
+ 10:15:00.000
+ 0
+ 10:16:00.000
+ 0
+
+
+ 10:18:00.000
+ 0
+ 10:19:00.000
+ 0
+
+
+ 10:21:00.000
+ 0
+ 10:22:00.000
+ 0
+
+
+
+
+ Course 1 semaine en vacances et exclusions note 3
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 11:01:00.000
+ 0
+ 11:02:00.000
+ 0
+
+
+ 11:10:00.000
+ 0
+ 11:11:00.000
+ 0
+
+
+ 11:15:00.000
+ 0
+ 11:16:00.000
+ 0
+
+
+ 11:18:00.000
+ 0
+ 11:19:00.000
+ 0
+
+
+ 11:21:00.000
+ 0
+ 11:22:00.000
+ 0
+
+
+
+
+ Course 1 semaine note 3
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 13:01:00.000
+ 0
+ 13:02:00.000
+ 0
+
+
+ 13:10:00.000
+ 0
+ 13:11:00.000
+ 0
+
+
+ 13:15:00.000
+ 0
+ 13:16:00.000
+ 0
+
+
+ 13:18:00.000
+ 0
+ 13:19:00.000
+ 0
+
+
+ 13:21:00.000
+ 0
+ 13:22:00.000
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00168_08.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00168_08.xml
new file mode 100644
index 000000000..77116b8b4
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00168_08.xml
@@ -0,0 +1,667 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+ Ligne 8
+
+
+
+
+
+
+ route 1
+ version="any"
+ outbound
+
+
+
+
+ route 2
+ version="any"
+ outbound
+
+
+
+
+ route 3
+ version="any"
+ inbound
+
+
+
+
+ route 4
+ version="any"
+ inbound
+
+
+
+
+ rambouillet vers auffargis
+
+
+ rambouillet vers les essarts
+
+
+ auffargis vers rambouillet
+
+
+ les essarts vers rambouillet
+
+
+ de rambouillet vers auffargis
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ de rambouillet aux essarts via le perray
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ auffargis SNCF rambouillet sncf
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ les essarts SNCF rambouillet sncf
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ Auffargis route du perray
+ 1234
+
+
+ les essarts sncf
+ 2345
+
+
+ rambouillet
+ 2345
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+ ITL 1
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+ ITL 2
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+
+
+
+
+
+ Course 1 direction auffargis
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:01:00.000
+ 0
+ 06:01:00.000
+ 0
+
+
+ 06:04:00.000
+ 0
+ 06:04:00.000
+ 0
+
+
+ 06:06:00.000
+ 0
+ 06:06:00.000
+ 0
+
+
+ 06:08:00.000
+ 0
+ 06:08:00.000
+ 0
+
+
+ 06:18:00.000
+ 0
+ 06:18:00.000
+ 0
+
+
+ 06:21:00.000
+ 0
+ 06:21:00.000
+ 0
+
+
+ 06:24:00.000
+ 0
+ 06:24:00.000
+ 0
+
+
+
+
+ Course 1 directionles essarts
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:01:00.000
+ 0
+ 07:01:00.000
+ 0
+
+
+ 07:04:00.000
+ 0
+ 07:04:00.000
+ 0
+
+
+ 07:07:00.000
+ 0
+ 07:07:00.000
+ 0
+
+
+ 07:08:00.000
+ 0
+ 07:08:00.000
+ 0
+
+
+ 07:18:00.000
+ 0
+ 07:18:00.000
+ 0
+
+
+ 07:21:00.000
+ 0
+ 07:21:00.000
+ 0
+
+
+ 07:23:00.000
+ 0
+ 07:23:00.000
+ 0
+
+
+ 07:29:00.000
+ 0
+ 07:29:00.000
+ 0
+
+
+
+
+ Course 1 direction rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 09:01:00.000
+ 0
+ 09:01:00.000
+ 0
+
+
+ 09:04:00.000
+ 0
+ 09:04:00.000
+ 0
+
+
+ 09:06:00.000
+ 0
+ 09:06:00.000
+ 0
+
+
+ 09:16:00.000
+ 0
+ 09:16:00.000
+ 0
+
+
+ 09:18:00.000
+ 0
+ 09:18:00.000
+ 0
+
+
+ 09:21:00.000
+ 0
+ 09:21:00.000
+ 0
+
+
+ 09:24:00.000
+ 0
+ 09:24:00.000
+ 0
+
+
+
+
+ Course 1 les essarts rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 10:01:00.000
+ 0
+ 10:01:00.000
+ 0
+
+
+ 10:04:00.000
+ 0
+ 10:04:00.000
+ 0
+
+
+ 10:07:00.000
+ 0
+ 10:07:00.000
+ 0
+
+
+ 10:08:00.000
+ 0
+ 10:08:00.000
+ 0
+
+
+ 10:18:00.000
+ 0
+ 10:18:00.000
+ 0
+
+
+ 10:21:00.000
+ 0
+ 10:21:00.000
+ 0
+
+
+ 10:23:00.000
+ 0
+ 10:23:00.000
+ 0
+
+
+ 10:29:00.000
+ 0
+ 10:29:00.000
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00171_11.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00171_11.xml
new file mode 100644
index 000000000..9d5309d60
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_1_20170820120001/offre_C00171_11.xml
@@ -0,0 +1,473 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+ Ligne 11
+
+
+
+
+
+
+ route 1
+ version="any"
+ outbound
+
+
+
+
+ route 2
+ version="any"
+ inbound
+
+
+
+
+ Rambouillet Auneau
+
+
+ Auneau Rambouillet
+
+
+ orsonville eglise
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ auneau SNCF
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ orsonville rambouillet
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ auneau SNCF rambouillet
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ Vers orsonville
+ 11011
+
+
+ vers auneau
+ 11021
+
+
+ vers rambouillet
+ 11031
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+ ITL 1
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+ ITL 2
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+
+
+
+
+
+ Course 1 direction orsonville
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 10:58:00.000
+ 0
+ 10:59:00.000
+ 0
+
+
+ 11:03:00.000
+ 0
+ 11:04:00.000
+ 0
+
+
+ 11:10:00.000
+ 0
+ 11:11:00.000
+ 0
+
+
+ 11:17:00.000
+ 0
+ 11:18:00.000
+ 0
+
+
+
+
+ Course 1 direction Auneau sncf
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 14:58:00.000
+ 0
+ 14:59:00.000
+ 0
+
+
+ 15:03:00.000
+ 0
+ 15:04:00.000
+ 0
+
+
+ 15:10:00.000
+ 0
+ 15:11:00.000
+ 0
+
+
+ 15:17:00.000
+ 0
+ 15:18:00.000
+ 0
+
+
+ 15:22:00.000
+ 0
+ 15:23:00.000
+ 0
+
+
+
+
+ direction rambouillet retour
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 20:58:00.000
+ 0
+ 20:59:00.000
+ 0
+
+
+ 21:03:00.000
+ 0
+ 21:04:00.000
+ 0
+
+
+ 21:10:00.000
+ 0
+ 21:11:00.000
+ 0
+
+
+ 21:17:00.000
+ 0
+ 21:18:00.000
+ 0
+
+
+
+
+ de auneau sncf à rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 23:58:00.000
+ 0
+ 23:59:00.000
+ 0
+
+
+ 00:03:00.000
+ 1
+ 00:04:00.000
+ 1
+
+
+ 00:10:00.000
+ 1
+ 00:11:00.000
+ 1
+
+
+ 00:13:00.000
+ 1
+ 00:14:00.000
+ 1
+
+
+ 00:17:00.000
+ 1
+ 00:18:00.000
+ 1
+
+
+
+
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/calendriers.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/calendriers.xml
new file mode 100644
index 000000000..bc2b63527
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/calendriers.xml
@@ -0,0 +1,145 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+
+ 2017-06-25T00:00:00
+ 2017-12-31T00:00:00
+
+
+
+
+ Semaine
+
+
+ Monday
+
+
+ Tuesday
+
+
+ Wednesday
+
+
+ Thursday
+
+
+ Friday
+
+
+
+
+ Fin de semaine
+
+
+ Saturday
+
+
+ Sunday
+
+
+
+
+ Semaine vacances
+
+
+ Monday
+
+
+ Tuesday
+
+
+ Wednesday
+
+
+ Thursday
+
+
+ Friday
+
+
+
+
+ WE vacances
+
+
+ Saturday
+
+
+ Sunday
+
+
+
+
+ Service spécial
+
+
+ Restriction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2017-07-05
+
+ true
+
+
+ 2017-08-14
+
+ false
+
+
+ 2017-08-15
+
+ false
+
+
+ 2017-08-16
+
+ false
+
+
+ 2017-06-25T00:00:00
+ 2017-07-01T00:00:00
+
+
+ 2017-07-10T00:00:00
+ 2017-08-31T00:00:00
+
+
+ 2017-09-01T00:00:00
+ 2017-12-31T00:00:00
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/commun.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/commun.xml
new file mode 100644
index 000000000..b6337b65f
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/commun.xml
@@ -0,0 +1,30 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+
+
+
+ note numéro 1
+ 1
+
+
+
+ note numéro 2
+ 2
+
+
+
+ note numéro 3
+ 3
+
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00163_01.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00163_01.xml
new file mode 100644
index 000000000..b3bccc74f
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00163_01.xml
@@ -0,0 +1,497 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+ Ligne 01
+
+
+
+
+
+
+ itinéraire rambouillet vers poigny
+ version="any"
+ outbound
+
+
+
+
+ itinéraire poigny vers rambouillet
+ version="any"
+ inbound
+
+
+
+
+ poigny feuillettes
+
+
+ rambouillet SNCF
+
+
+ rambouillet vers poigny
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ poigny vers rambouillet
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ Mission 1
+ 01101
+
+
+ Mission 2
+ 01201
+
+
+
+
+
+
+
+
+
+
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+ ITL 1
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+ ITL 2
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+
+
+
+
+
+ Course 01 rambouillet vers poigny
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 05:01:00.000
+ 0
+ 05:01:00.000
+ 0
+
+
+ 05:09:00.000
+ 0
+ 05:09:00.000
+ 0
+
+
+ 05:11:00.000
+ 0
+ 05:11:00.000
+ 0
+
+
+ 05:13:00.000
+ 0
+ 05:13:00.000
+ 0
+
+
+ 05:15:00.000
+ 0
+ 05:15:00.000
+ 0
+
+
+
+
+ Course 02 rambouillet vers poigny
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:01:00.000
+ 0
+ 06:01:00.000
+ 0
+
+
+ 06:09:00.000
+ 0
+ 06:09:00.000
+ 0
+
+
+ 06:11:00.000
+ 0
+ 06:11:00.000
+ 0
+
+
+ 06:13:00.000
+ 0
+ 06:13:00.000
+ 0
+
+
+ 06:15:00.000
+ 0
+ 06:15:00.000
+ 0
+
+
+
+
+ Course 03 rambouillet vers poigny
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:31:00.000
+ 0
+ 06:31:00.000
+ 0
+
+
+ 06:39:00.000
+ 0
+ 06:39:00.000
+ 0
+
+
+ 06:41:00.000
+ 0
+ 06:41:00.000
+ 0
+
+
+ 06:43:00.000
+ 0
+ 06:43:00.000
+ 0
+
+
+ 06:45:00.000
+ 0
+ 06:45:00.000
+ 0
+
+
+
+
+ Course 01 poigny vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 05:21:00.000
+ 0
+ 05:21:00.000
+ 0
+
+
+ 05:29:00.000
+ 0
+ 05:29:00.000
+ 0
+
+
+ 05:31:00.000
+ 0
+ 05:31:00.000
+ 0
+
+
+ 05:33:00.000
+ 0
+ 05:33:00.000
+ 0
+
+
+ 05:35:00.000
+ 0
+ 05:35:00.000
+ 0
+
+
+
+
+ Course 02 poigny vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:21:00.000
+ 0
+ 06:21:00.000
+ 0
+
+
+ 06:29:00.000
+ 0
+ 06:29:00.000
+ 0
+
+
+ 06:31:00.000
+ 0
+ 06:31:00.000
+ 0
+
+
+ 06:33:00.000
+ 0
+ 06:33:00.000
+ 0
+
+
+ 06:35:00.000
+ 0
+ 06:35:00.000
+ 0
+
+
+
+
+ Course 03 poigny vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:51:00.000
+ 0
+ 07:51:00.000
+ 0
+
+
+ 07:59:00.000
+ 0
+ 07:59:00.000
+ 0
+
+
+ 08:01:00.000
+ 0
+ 08:01:00.000
+ 0
+
+
+ 08:03:00.000
+ 0
+ 08:03:00.000
+ 0
+
+
+ 08:05:00.000
+ 0
+ 08:05:00.000
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00164_03.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00164_03.xml
new file mode 100644
index 000000000..56d6ce805
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00164_03.xml
@@ -0,0 +1,951 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+ Ligne 03
+
+
+
+
+
+
+ route 1
+ version="any"
+ outbound
+
+
+
+
+ route 2
+ version="any"
+ inbound
+
+
+
+
+ rambouillet vers pontevrard
+
+
+ pontevrard vers rambouillet
+
+
+ omnibus pontevrard
+
+
+
+
+
+ true
+ true
+
+
+
+ false
+ true
+
+
+
+ false
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ omnibus rambouillet
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ semi direct pontevrard
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ semi direct rambouillet
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ pontevrard omni
+ 03011
+
+
+ dourdan omni
+ 03021
+
+
+ pontevrard sd
+ 03012
+
+
+ dourdan sd
+ 03022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+ ITL 1
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+ ITL 2
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+
+
+
+
+
+ Course 1 omni vers pontevrard
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 05:00:00.000
+ 0
+ 05:01:00.000
+ 0
+
+
+ 05:04:00.000
+ 0
+ 05:04:00.000
+ 0
+
+
+ 05:08:00.000
+ 0
+ 05:09:00.000
+ 0
+
+
+ 05:13:00.000
+ 0
+ 05:13:00.000
+ 0
+
+
+ 05:18:00.000
+ 0
+ 05:18:00.000
+ 0
+
+
+ 05:21:00.000
+ 0
+ 05:22:00.000
+ 0
+
+
+ 05:25:00.000
+ 0
+ 05:26:00.000
+ 0
+
+
+
+
+ Course 2 omni vers pontevrard
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:00:00.000
+ 0
+ 06:01:00.000
+ 0
+
+
+ 06:04:00.000
+ 0
+ 06:04:00.000
+ 0
+
+
+ 06:08:00.000
+ 0
+ 06:09:00.000
+ 0
+
+
+ 06:13:00.000
+ 0
+ 06:13:00.000
+ 0
+
+
+ 06:18:00.000
+ 0
+ 06:18:00.000
+ 0
+
+
+ 06:21:00.000
+ 0
+ 06:22:00.000
+ 0
+
+
+ 06:25:00.000
+ 0
+ 06:26:00.000
+ 0
+
+
+
+
+ Course 3 omni vers pontevrard
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:00:00.000
+ 0
+ 07:01:00.000
+ 0
+
+
+ 07:04:00.000
+ 0
+ 07:04:00.000
+ 0
+
+
+ 07:08:00.000
+ 0
+ 07:09:00.000
+ 0
+
+
+ 07:13:00.000
+ 0
+ 07:13:00.000
+ 0
+
+
+ 07:18:00.000
+ 0
+ 07:18:00.000
+ 0
+
+
+ 07:21:00.000
+ 0
+ 07:22:00.000
+ 0
+
+
+ 07:25:00.000
+ 0
+ 07:26:00.000
+ 0
+
+
+
+
+ Course 4 sd vers pontevrard
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 05:30:00.000
+ 0
+ 05:31:00.000
+ 0
+
+
+ 05:37:00.000
+ 0
+ 05:37:00.000
+ 0
+
+
+ 05:40:00.000
+ 0
+ 05:41:00.000
+ 0
+
+
+ 05:44:00.000
+ 0
+ 05:45:00.000
+ 0
+
+
+
+
+ Course 5 sd vers pontevrard
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:30:00.000
+ 0
+ 06:31:00.000
+ 0
+
+
+ 06:37:00.000
+ 0
+ 06:37:00.000
+ 0
+
+
+ 06:40:00.000
+ 0
+ 06:41:00.000
+ 0
+
+
+ 06:44:00.000
+ 0
+ 06:45:00.000
+ 0
+
+
+
+
+
+
+ Course 6 sd vers pontevrard
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:30:00.000
+ 0
+ 07:31:00.000
+ 0
+
+
+ 07:37:00.000
+ 0
+ 07:37:00.000
+ 0
+
+
+ 07:40:00.000
+ 0
+ 07:41:00.000
+ 0
+
+
+ 07:44:00.000
+ 0
+ 07:45:00.000
+ 0
+
+
+
+
+ Course 1 omni vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 05:20:00.000
+ 0
+ 05:21:00.000
+ 0
+
+
+ 05:24:00.000
+ 0
+ 05:24:00.000
+ 0
+
+
+ 05:28:00.000
+ 0
+ 05:29:00.000
+ 0
+
+
+ 05:33:00.000
+ 0
+ 05:33:00.000
+ 0
+
+
+ 05:38:00.000
+ 0
+ 05:38:00.000
+ 0
+
+
+ 05:41:00.000
+ 0
+ 05:42:00.000
+ 0
+
+
+ 05:45:00.000
+ 0
+ 05:46:00.000
+ 0
+
+
+
+
+ Course 2 omni vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:20:00.000
+ 0
+ 06:21:00.000
+ 0
+
+
+ 06:24:00.000
+ 0
+ 06:24:00.000
+ 0
+
+
+ 06:28:00.000
+ 0
+ 06:29:00.000
+ 0
+
+
+ 06:33:00.000
+ 0
+ 06:33:00.000
+ 0
+
+
+ 06:38:00.000
+ 0
+ 06:38:00.000
+ 0
+
+
+ 06:41:00.000
+ 0
+ 06:42:00.000
+ 0
+
+
+ 06:45:00.000
+ 0
+ 06:46:00.000
+ 0
+
+
+
+
+ Course 3 omni vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:20:00.000
+ 0
+ 07:21:00.000
+ 0
+
+
+ 07:24:00.000
+ 0
+ 07:24:00.000
+ 0
+
+
+ 07:28:00.000
+ 0
+ 07:29:00.000
+ 0
+
+
+ 07:33:00.000
+ 0
+ 07:33:00.000
+ 0
+
+
+ 07:38:00.000
+ 0
+ 07:38:00.000
+ 0
+
+
+ 07:41:00.000
+ 0
+ 07:42:00.000
+ 0
+
+
+ 07:45:00.000
+ 0
+ 07:46:00.000
+ 0
+
+
+
+
+ Course 4 sd vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 05:40:00.000
+ 0
+ 05:41:00.000
+ 0
+
+
+ 05:47:00.000
+ 0
+ 05:47:00.000
+ 0
+
+
+ 05:50:00.000
+ 0
+ 05:51:00.000
+ 0
+
+
+ 05:54:00.000
+ 0
+ 05:55:00.000
+ 0
+
+
+
+
+ Course 5 sd vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:40:00.000
+ 0
+ 06:41:00.000
+ 0
+
+
+ 06:47:00.000
+ 0
+ 06:47:00.000
+ 0
+
+
+ 06:50:00.000
+ 0
+ 06:51:00.000
+ 0
+
+
+ 06:54:00.000
+ 0
+ 06:55:00.000
+ 0
+
+
+
+
+ Course 6 sd vers rambouillet
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:40:00.000
+ 0
+ 07:41:00.000
+ 0
+
+
+ 07:47:00.000
+ 0
+ 07:47:00.000
+ 0
+
+
+ 07:50:00.000
+ 0
+ 07:51:00.000
+ 0
+
+
+ 07:54:00.000
+ 0
+ 07:55:00.000
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00165_04.xml b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00165_04.xml
new file mode 100644
index 000000000..714e9565f
--- /dev/null
+++ b/spec/fixtures/regression-5281/OFFRE_SNTYO_2_20170820120001/offre_C00165_04.xml
@@ -0,0 +1,803 @@
+
+
+ 2017-02-14T09:13:51.0
+ CITYWAY
+
+
+ Ligne 4
+
+
+
+
+
+
+ route 1
+ version="any"
+ outbound
+
+
+
+
+ route 2
+ version="any"
+ inbound
+
+
+
+
+ rambouillet vers bullion
+
+
+ bullon vers rambouillet
+
+
+ rambouillet vers bullion
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ bullion vers rambouillet
+
+
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+
+ true
+ true
+
+
+ passenger
+
+
+ Mission 1
+ 05010
+
+
+ Mission 2
+ 05021
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+ ITL RBT clairefontaine
+
+
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+ ITL clairefontaine RBT
+
+
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+ ITL bullion
+
+
+
+
+
+
+ cannotBoardAndAlightInSameZone
+
+
+
+
+
+
+
+ C1 bullion semaine
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:01:00.000
+ 0
+ 06:01:00.000
+ 0
+
+
+ 06:05:00.000
+ 0
+ 06:05:00.000
+ 0
+
+
+ 06:09:00.000
+ 0
+ 06:09:00.000
+ 0
+
+
+ 06:12:00.000
+ 0
+ 06:12:00.000
+ 0
+
+
+ 06:15:00.000
+ 0
+ 06:15:00.000
+ 0
+
+
+ 06:21:00.000
+ 0
+ 06:22:00.000
+ 0
+
+
+ 06:25:00.000
+ 0
+ 06:25:00.000
+ 0
+
+
+ 06:29:00.000
+ 0
+ 06:29:00.000
+ 0
+
+
+ 06:31:00.000
+ 0
+ 06:32:00.000
+ 0
+
+
+ 06:34:00.000
+ 0
+ 06:35:00.000
+ 0
+
+
+
+
+ C bullion WE
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:01:00.000
+ 0
+ 07:01:00.000
+ 0
+
+
+ 07:05:00.000
+ 0
+ 07:05:00.000
+ 0
+
+
+ 07:09:00.000
+ 0
+ 07:09:00.000
+ 0
+
+
+ 07:12:00.000
+ 0
+ 07:12:00.000
+ 0
+
+
+ 07:15:00.000
+ 0
+ 07:15:00.000
+ 0
+
+
+ 07:21:00.000
+ 0
+ 07:22:00.000
+ 0
+
+
+ 07:25:00.000
+ 0
+ 07:25:00.000
+ 0
+
+
+ 07:29:00.000
+ 0
+ 07:29:00.000
+ 0
+
+
+ 07:31:00.000
+ 0
+ 07:32:00.000
+ 0
+
+
+ 07:34:00.000
+ 0
+ 07:35:00.000
+ 0
+
+
+
+
+ C bullion WE
+
+
+
+ version="any"
+
+
+
+ version="any"
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 08:01:00.000
+ 0
+ 08:01:00.000
+ 0
+
+
+ 08:05:00.000
+ 0
+ 08:05:00.000
+ 0
+
+
+ 08:09:00.000
+ 0
+ 08:09:00.000
+ 0
+
+
+ 08:12:00.000
+ 0
+ 08:12:00.000
+ 0
+
+
+ 08:15:00.000
+ 0
+ 08:15:00.000
+ 0
+
+
+ 08:21:00.000
+ 0
+ 08:22:00.000
+ 0
+
+
+ 08:25:00.000
+ 0
+ 08:25:00.000
+ 0
+
+
+ 08:29:00.000
+ 0
+ 08:29:00.000
+ 0
+
+
+ 08:31:00.000
+ 0
+ 08:32:00.000
+ 0
+
+
+ 08:34:00.000
+ 0
+ 08:35:00.000
+ 0
+
+
+
+
+ C rbt semaine
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 05:21:00.000
+ 0
+ 05:21:00.000
+ 0
+
+
+ 05:25:00.000
+ 0
+ 05:25:00.000
+ 0
+
+
+ 05:29:00.000
+ 0
+ 05:29:00.000
+ 0
+
+
+ 05:32:00.000
+ 0
+ 05:32:00.000
+ 0
+
+
+ 05:35:00.000
+ 0
+ 05:35:00.000
+ 0
+
+
+ 05:41:00.000
+ 0
+ 05:42:00.000
+ 0
+
+
+ 05:45:00.000
+ 0
+ 05:45:00.000
+ 0
+
+
+ 05:49:00.000
+ 0
+ 05:49:00.000
+ 0
+
+
+ 05:51:00.000
+ 0
+ 05:52:00.000
+ 0
+
+
+ 05:54:00.000
+ 0
+ 05:55:00.000
+ 0
+
+
+
+
+ C rbt we
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 06:21:00.000
+ 0
+ 06:21:00.000
+ 0
+
+
+ 06:25:00.000
+ 0
+ 06:25:00.000
+ 0
+
+
+ 06:29:00.000
+ 0
+ 06:29:00.000
+ 0
+
+
+ 06:32:00.000
+ 0
+ 06:32:00.000
+ 0
+
+
+ 06:35:00.000
+ 0
+ 06:35:00.000
+ 0
+
+
+ 06:41:00.000
+ 0
+ 06:42:00.000
+ 0
+
+
+ 06:45:00.000
+ 0
+ 06:45:00.000
+ 0
+
+
+ 06:49:00.000
+ 0
+ 06:49:00.000
+ 0
+
+
+ 06:51:00.000
+ 0
+ 06:52:00.000
+ 0
+
+
+ 06:54:00.000
+ 0
+ 06:55:00.000
+ 0
+
+
+
+
+ C rbt semaine et we
+
+
+
+ version="any"
+
+
+
+ version="any"
+ version="any"
+
+
+
+ version="any"
+
+ version="any"
+
+
+
+ 07:21:00.000
+ 0
+ 07:21:00.000
+ 0
+
+
+ 07:25:00.000
+ 0
+ 07:25:00.000
+ 0
+
+
+ 07:29:00.000
+ 0
+ 07:29:00.000
+ 0
+
+
+ 07:32:00.000
+ 0
+ 07:32:00.000
+ 0
+
+
+ 07:35:00.000
+ 0
+ 07:35:00.000
+ 0
+
+
+ 07:41:00.000
+ 0
+ 07:42:00.000
+ 0
+
+
+ 07:45:00.000
+ 0
+ 07:45:00.000
+ 0
+
+
+ 07:49:00.000
+ 0
+ 07:49:00.000
+ 0
+
+
+ 07:51:00.000
+ 0
+ 07:52:00.000
+ 0
+
+
+ 07:54:00.000
+ 0
+ 07:55:00.000
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/spec/services/zip_service_spec.rb b/spec/services/zip_service_spec.rb
index 751e6c3f1..1eadaa3bf 100644
--- a/spec/services/zip_service_spec.rb
+++ b/spec/services/zip_service_spec.rb
@@ -67,7 +67,7 @@ RSpec.describe ZipService, type: :zip do
end
end
- context 'one messed up' do
+ context 'one messed up' do
let( :zip_name ){ 'one_messed_up.zip' }
let( :zip_content ){ messed_up_referential_data }
@@ -76,11 +76,30 @@ RSpec.describe ZipService, type: :zip do
expected_foreign_lines: %w{C00110 C00111},
expected_spurious: %w{SPURIOUS1 SPURIOUS2}
end
-
+
+ end
+
+ # Regression treated in #5281
+ context 'one_first_level_dir' do
+ let( :zip_data ){ File.read fixtures_path('regression-5281.zip') }
+ let( :zip_name ){ 'regression_5281' }
+
+ let( :allowed_lines ){
+ Set.new([*164..168, 171].map{|line| "C00#{line}"})
+ }
+
+ let( :subdirs ){ subject.to_a }
+
+ it 'returns one not ok object' do
+ expect( subdirs.size ).to eq(1)
+ expect( subdirs.first ).not_to be_ok
+ expect( subdirs.first.spurious ).to eq(%w{OFFRE_SNTYO_1_20170820120001 OFFRE_SNTYO_2_20170820120001})
+ end
end
+
# Behaviour
# ---------
- def expect_correct_subdir subdir, expected_zip
+ def expect_correct_subdir subdir, expected_zip
expect( subdir ).to be_ok
expect( subdir.foreign_lines ).to be_empty
expect( subdir.spurious ).to be_empty
@@ -145,5 +164,4 @@ RSpec.describe ZipService, type: :zip do
}
end
-
end
--
cgit v1.2.3
From 4613f02d52e2d8c9159633b6a45b8d0361759332 Mon Sep 17 00:00:00 2001
From: Robert
Date: Thu, 14 Dec 2017 17:58:57 +0100
Subject: Refs: #5006@0.7h; CR changes from #5006 & staring error_messages in
imports/show
- Renaming as requested STIF::NetexFile::Frame.get_line_object_id -> get_sgort_id
- working on error_messages for imports#show
---
spec/lib/stif/netex_file/frame_spec.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'spec')
diff --git a/spec/lib/stif/netex_file/frame_spec.rb b/spec/lib/stif/netex_file/frame_spec.rb
index eb80e7b14..506da2148 100644
--- a/spec/lib/stif/netex_file/frame_spec.rb
+++ b/spec/lib/stif/netex_file/frame_spec.rb
@@ -3,11 +3,11 @@ RSpec.describe STIF::NetexFile::Frame do
context "line object id extraction" do
it "gets the line object id if frame describes a line" do
- expect( described_class.get_line_object_id('offre_C00109_10.xml') ).to eq('C00109')
+ expect( described_class.get_short_id('offre_C00109_10.xml') ).to eq('C00109')
end
it "gets nil if the frame does not describe a line" do
- expect( described_class.get_line_object_id('commun.xml') ).to be_nil
+ expect( described_class.get_short_id('commun.xml') ).to be_nil
end
end
end
--
cgit v1.2.3
From b6067ba25bff1dc95975be49e3f9a02a5932202a Mon Sep 17 00:00:00 2001
From: Robert
Date: Thu, 14 Dec 2017 21:25:24 +0100
Subject: Refs: #5281@0.33h; Speced Common Helper's string_keys_to_symbol
---
spec/helpers/common_helper_spec.rb | 39 ++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644 spec/helpers/common_helper_spec.rb
(limited to 'spec')
diff --git a/spec/helpers/common_helper_spec.rb b/spec/helpers/common_helper_spec.rb
new file mode 100644
index 000000000..186c4184e
--- /dev/null
+++ b/spec/helpers/common_helper_spec.rb
@@ -0,0 +1,39 @@
+RSpec.describe CommonHelper do
+
+ subject do
+ Object.new.extend( described_class )
+ end
+
+ describe 'string_keys_to_symbols' do
+ context 'nullpotency on symbol keys' do
+ it { expect(subject.string_keys_to_symbols({})).to eq({}) }
+ it do
+ expect(subject.string_keys_to_symbols(
+ a: 1, b: 2
+ )).to eq(a: 1, b: 2)
+ end
+ end
+
+ context 'changing string keys' do
+ it { expect(subject.string_keys_to_symbols('alpha' => 100)).to eq(alpha: 100) }
+
+ it do
+ expect( subject.string_keys_to_symbols('a' => 10, b: 20) )
+ .to eq(a: 10, b: 20)
+ end
+ it do
+ expect( subject.string_keys_to_symbols('a' => 10, 'b' => 20) )
+ .to eq(a: 10, b: 20)
+ end
+ end
+
+ context 'keys, not values, are changed' do
+ it do
+ expect(subject.string_keys_to_symbols(a: 'a', 'b' => 'b', 'c' => :c))
+ .to eq(a: 'a', b: 'b', c: :c)
+ end
+ end
+
+
+ end
+end
--
cgit v1.2.3
From 443de38df52143f72d97308c28ac68f99e009757 Mon Sep 17 00:00:00 2001
From: Robert
Date: Fri, 15 Dec 2017 08:24:24 +0100
Subject: Fixes: #5281@1.2h; View specs and minor CR change from #5006
- CR change from #5006, severity of zip file messages :warning -> :error
- View specs for showing import_messages
---
spec/factories/import_messages.rb | 12 +++++++
spec/helpers/common_helper_spec.rb | 8 ++---
spec/support/referential.rb | 1 -
spec/views/companies/edit.html.erb_spec.rb | 1 +
spec/views/imports/show.html.slim_spec.rb | 42 ++++++++++++++++++++++++
spec/views/vehicle_journeys/new.html.erb_spec.rb | 1 +
6 files changed, 60 insertions(+), 5 deletions(-)
create mode 100644 spec/views/imports/show.html.slim_spec.rb
(limited to 'spec')
diff --git a/spec/factories/import_messages.rb b/spec/factories/import_messages.rb
index 75f80566c..5d936679a 100644
--- a/spec/factories/import_messages.rb
+++ b/spec/factories/import_messages.rb
@@ -3,5 +3,17 @@ FactoryGirl.define do
association :import
association :resource, factory: :import_resource
criticity :info
+
+ factory :corrupt_zip_file do
+ message_key 'corrupt_zip_file'
+ message_attributes({ source_filename: 'political file' })
+ criticity :error
+ end
+
+ factory :inconsistent_zip_file do
+ message_key 'inconsistent_zip_file'
+ message_attributes({ source_filename: 'robert talking', spurious_dirs: %w{dogs and cats}.join })
+ criticity :warning
+ end
end
end
diff --git a/spec/helpers/common_helper_spec.rb b/spec/helpers/common_helper_spec.rb
index 186c4184e..1ffdc5bab 100644
--- a/spec/helpers/common_helper_spec.rb
+++ b/spec/helpers/common_helper_spec.rb
@@ -4,7 +4,7 @@ RSpec.describe CommonHelper do
Object.new.extend( described_class )
end
- describe 'string_keys_to_symbols' do
+ describe 'string_keys_to_symbols' do
context 'nullpotency on symbol keys' do
it { expect(subject.string_keys_to_symbols({})).to eq({}) }
it do
@@ -14,9 +14,9 @@ RSpec.describe CommonHelper do
end
end
- context 'changing string keys' do
+ context 'changing string keys' do
it { expect(subject.string_keys_to_symbols('alpha' => 100)).to eq(alpha: 100) }
-
+
it do
expect( subject.string_keys_to_symbols('a' => 10, b: 20) )
.to eq(a: 10, b: 20)
@@ -30,7 +30,7 @@ RSpec.describe CommonHelper do
context 'keys, not values, are changed' do
it do
expect(subject.string_keys_to_symbols(a: 'a', 'b' => 'b', 'c' => :c))
- .to eq(a: 'a', b: 'b', c: :c)
+ .to eq(a: 'a', b: 'b', c: :c)
end
end
diff --git a/spec/support/referential.rb b/spec/support/referential.rb
index b615491da..7f56e5143 100644
--- a/spec/support/referential.rb
+++ b/spec/support/referential.rb
@@ -29,7 +29,6 @@ module ReferentialHelper
end
end
-
end
end
diff --git a/spec/views/companies/edit.html.erb_spec.rb b/spec/views/companies/edit.html.erb_spec.rb
index 8aaf705ab..b85b9aa8b 100644
--- a/spec/views/companies/edit.html.erb_spec.rb
+++ b/spec/views/companies/edit.html.erb_spec.rb
@@ -9,6 +9,7 @@ describe "/companies/edit", :type => :view do
describe "form" do
it "should render input for name" do
render
+ require 'pry'; binding.pry
expect(rendered).to have_selector("form") do
with_tag "input[type=text][name='company[name]'][value=?]", company.name
end
diff --git a/spec/views/imports/show.html.slim_spec.rb b/spec/views/imports/show.html.slim_spec.rb
new file mode 100644
index 000000000..f30202231
--- /dev/null
+++ b/spec/views/imports/show.html.slim_spec.rb
@@ -0,0 +1,42 @@
+RSpec.describe '/imports/show', type: :view do
+ let(:workbench){ create :workbench }
+ let(:workbench_import){ create :workbench_import, workbench: workbench }
+ let!( :messages ) {[
+ create(:corrupt_zip_file, import: workbench_import),
+ create(:inconsistent_zip_file, import: workbench_import),
+ ]}
+
+
+ before do
+ assign :import, workbench_import.decorate( context: {workbench: workbench} )
+ render
+ end
+
+ it 'shows the correct record...' do
+ # ... zip file name
+ expect(rendered).to have_selector('.dl-def') do
+ with_text workbench_import.file
+ end
+
+ # ... messages
+ messages.each do | message |
+ # require 'htmlbeautifier'
+ # b = HtmlBeautifier.beautify(rendered, indent: ' ')
+ # require 'pry'; binding.pry
+ expect(rendered).to have_selector('dl#import_messages dt.import_message') do
+ with_text message.criticity
+ end
+ expect(rendered).to have_selector('dl#import_messages dd.import_message') do
+ with_text rendered_message( message )
+ end
+ end
+ end
+
+
+ def rendered_message message
+ Object.new.extend(CommonHelper).tap do |helper|
+ return I18n.t(message.message_key, helper.string_keys_to_symbols( message.message_attributes ))
+ end
+ end
+
+end
diff --git a/spec/views/vehicle_journeys/new.html.erb_spec.rb b/spec/views/vehicle_journeys/new.html.erb_spec.rb
index 546e89ac8..40b7fb049 100644
--- a/spec/views/vehicle_journeys/new.html.erb_spec.rb
+++ b/spec/views/vehicle_journeys/new.html.erb_spec.rb
@@ -9,6 +9,7 @@ describe "/vehicle_journeys/new", :type => :view do
it "renders _form" do
render
+ require 'pry'; binding.pry
expect(view).to render_template(:partial => "_form")
end
--
cgit v1.2.3