--- /dev/null
+package org.lilie.services.eliot.notes.export
+
+import grails.plugin.spock.UnitSpec
+import org.lilie.services.eliot.notes.export.tableaudenotes.TableauDeNotesExportService
+import org.lilie.services.eliot.notes.notes.tableaudenotes.TableauDeNotes
+import org.lilie.services.eliot.notes.notes.tableaudenotes.TableauDeNotesService
+import org.lilie.services.eliot.annuaire.SecuriteSession
+import org.lilie.services.eliot.tableau.Tableau
+import org.lilie.services.eliot.tableau.Ligne
+import org.lilie.services.eliot.tableau.Cellule
+
+/**
+ * @author onic
+ */
+class TableauDeNotesExportServiceSpec extends UnitSpec {
+
+ TableauDeNotesExportService tableauDeNotesExportService
+
+ TableauDeNotesService tableauDeNotesService
+ SecuriteSession securiteSession
+ Tableau tableauGenerique
+
+ Ligne ligneEntete
+ Ligne ligne
+ Ligne lignePied
+
+ Cellule celluleEntete
+ Cellule cellule
+ Cellule cellulePied
+
+ def setup() {
+ tableauGenerique = Mock(Tableau)
+
+ ligneEntete = Mock(Ligne)
+ ligne = Mock(Ligne)
+ lignePied = Mock(Ligne)
+
+ celluleEntete = Mock(Cellule)
+ cellule = Mock(Cellule)
+ cellulePied = Mock(Cellule)
+
+ tableauDeNotesService = Mock(TableauDeNotesService)
+
+ tableauDeNotesExportService = new TableauDeNotesExportService(
+ tableauDeNotesService: tableauDeNotesService
+ )
+
+ securiteSession = Mock(SecuriteSession)
+ }
+
+ def 'transformeTdnEnDonneesCSV'() {
+
+ when:
+ donneesPourExportCSV = tableauDeNotesExportService.transformeTdnEnDonneesCSV(
+ securiteSession, tableauDeNotes, traducteurMessages)
+
+ then:
+ donneesPourExportCSV != null
+
+ donneesPourExportCSV.colonnes.size() == 1
+ donneesPourExportCSV.colonnes[0] == valeurEntete
+
+ donneesPourExportCSV.lignes.size() == 2
+ donneesPourExportCSV.lignes[0].size() == 1
+ donneesPourExportCSV.lignes[0][0] == valeur
+ donneesPourExportCSV.lignes[1].size() == 1
+ donneesPourExportCSV.lignes[1][0] == valeurPied
+
+ 1 * tableauDeNotesService.transformeToSimpleTableau(
+ securiteSession, tableauDeNotes) >> tableauGenerique
+
+ 1 * tableauGenerique.traduisI18n(traducteurMessages)
+
+ 1 * tableauGenerique.eachLigneEnteteWithIndex({ closure ->
+ def index = 1
+ closure(ligneEntete, index)
+ return true
+ })
+
+ 1 * ligneEntete.eachCelluleWithIndex({ closure ->
+ def index = 1
+ closure(celluleEntete, index)
+ return true
+ })
+
+ 1 * celluleEntete.valeur >> valeurEntete
+
+ 1 * tableauGenerique.eachLigneWithIndex({ closure ->
+ def index = 1
+ closure(ligne, index)
+ return true
+ })
+
+ 1 * ligne.eachCelluleWithIndex({ closure ->
+ def index = 1
+ closure(cellule, index)
+ return true
+ })
+
+ 1 * cellule.valeur >> valeur
+
+ 1 * tableauGenerique.eachLignePiedWithIndex({ closure ->
+ def index = 1
+ closure(lignePied, index)
+ return true
+ })
+
+ 1 * lignePied.eachCelluleWithIndex({ closure ->
+ def index = 1
+ closure(cellulePied, index)
+ return true
+ })
+
+ 1 * cellulePied.valeur >> valeurPied
+
+ where:
+ donneesPourExportCSV = null
+ tableauDeNotes = new TableauDeNotes()
+
+ traducteurMessages = {}
+
+ valeurEntete = 'Valeur entête'
+ valeur = 'Valeur'
+ valeurPied = 'Valeur pied'
+
+ }
+
+}