from banbou import _Projet
import banbou



# TODO : Faire une phase d'initialisation générale (un SetUp) de mes objets
# Puis une phase de Clean des fichiers créés.

# chaque test à son fichier CSV numeroté dans le dossier "dossier01"

# J'ai pas mocker les fichiers etc, j'ai donc mis en place un jeu de fichiers dédiés a ces tests

def test_formate_la_premiere_ligne(mocker):
    
    sut = banbou._Projet()
    sut.nb_points = 0

    entree = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier01_ENTREE.csv"
    sortie = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier01_SORTIE.csv"

    sut.formatter_vers_ArcGIS(entree, sortie)

    expected_value = 9

    assert sut.nb_points == expected_value



def test_ajoute_titres_manquants(mocker):

    sut = banbou._Projet()
    sut.nb_points = 0

    entree = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier02_ENTREE.csv"
    sortie = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier02_SORTIE.csv"

    sut.formatter_vers_ArcGIS(entree, sortie)

    expected_value = 9

    assert sut.nb_points == expected_value

def test_supprime_lignes_vides(mocker):
    
    sut = banbou._Projet()
    sut.nb_points = 0

    entree = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier03_ENTREE.csv"
    sortie = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier03_SORTIE.csv"

    sut.formatter_vers_ArcGIS(entree, sortie)

    expected_value = 9

    assert sut.nb_points == expected_value

def test_ajoute_correctement_les_points(mocker):

    sut = banbou._Projet()
    sut.nb_points = 0

    entree = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier04_ENTREE.csv"
    sortie = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier04_SORTIE.csv"

    sut.formatter_vers_ArcGIS(entree, sortie)

    expected_value = 17

    assert sut.nb_points == expected_value

def test_ajoute_correctement_les_points_fichier_complexe(mocker):
    
    sut = banbou._Projet()
    sut.nb_points = 0

    entree = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier05_ENTREE.csv"
    sortie = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier05_SORTIE.csv"

    sut.formatter_vers_ArcGIS(entree, sortie)

    expected_value = 1118

    assert sut.nb_points == expected_value

def test_fichier_avec_sep_decimal_virgule():
    
    # NOTE: pas a traiter, car c'est transparent pour ArcGIS que le séparateur décimal soit une virgule ou un point.
    # mais je fait passer quand même le test pour voir si 
    sut = banbou._Projet()
    sut.nb_points = 0

    entree = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier06_ENTREE.csv"
    sortie = r"C:\Users\David_Castex\Documents\DATAS\GITDAV\NEOBANBOU\test\JEUXDONNEES\dossier01\fichier06_SORTIE.csv"

    sut.formatter_vers_ArcGIS(entree, sortie)

    expected_value = 17

    assert sut.nb_points == expected_value