github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/core/utils/pdf/fiche_sanitaire_test.go (about)

     1  package pdf
     2  
     3  import (
     4  	"io/ioutil"
     5  	"math/rand"
     6  	"os"
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/benoitkugler/goACVE/server/core/rawdata"
    11  )
    12  
    13  func init() {
    14  	rand.Seed(time.Now().UnixNano())
    15  }
    16  
    17  func randBool() bool {
    18  	i := rand.Intn(2)
    19  	return i == 0
    20  }
    21  
    22  func data() (rawdata.Personne, rawdata.Personne) {
    23  	al := rawdata.Allergies{
    24  		Alimentaires:    randBool(),
    25  		Asthme:          randBool(),
    26  		Medicamenteuses: randBool(),
    27  		Autres:          rawdata.RandString(200, true),
    28  		ConduiteATenir:  "mzkmk \n slkdj lksjd lsdààéàéàsdmskd \n sdsdlk",
    29  	}
    30  	ml := rawdata.Maladies{
    31  		Angine:     randBool(),
    32  		Coqueluche: randBool(),
    33  		Oreillons:  randBool(),
    34  		Otite:      randBool(),
    35  		Rhumatisme: randBool(),
    36  		Rougeole:   randBool(),
    37  	}
    38  	fs := rawdata.FicheSanitaire{
    39  		TraitementMedical: randBool(),
    40  		DifficultesSante:  rawdata.RandString(100, true),
    41  		Handicap:          randBool(),
    42  		Recommandations:   rawdata.RandString(300, true),
    43  		Tel:               "546565654646",
    44  		Medecin: rawdata.Medecin{
    45  			Nom: rawdata.RandString(30, true),
    46  			Tel: rawdata.RandString(30, true),
    47  		},
    48  	}
    49  	if randBool() {
    50  		fs.Allergies = al
    51  	}
    52  	if randBool() {
    53  		fs.Maladies = ml
    54  	}
    55  	pers := rawdata.Personne{BasePersonne: rawdata.BasePersonne{
    56  		Nom:           rawdata.String(rawdata.RandString(15, true)),
    57  		Prenom:        "zkle é@dzkmk è",
    58  		Sexe:          rawdata.Sexe("F"),
    59  		DateNaissance: rawdata.Date(time.Now()),
    60  	},
    61  		FicheSanitaire: fs,
    62  	}
    63  	resp := rawdata.Personne{BasePersonne: rawdata.BasePersonne{
    64  		Nom:             rawdata.String(rawdata.RandString(25, true)),
    65  		Prenom:          rawdata.String(rawdata.RandString(25, true)),
    66  		SecuriteSociale: rawdata.String(rawdata.RandString(25, true)),
    67  		Adresse:         "lskkd \n lsmdksmd smdl",
    68  		CodePostal:      rawdata.String(rawdata.RandString(5, true)),
    69  		Ville:           rawdata.String(rawdata.RandString(15, true)),
    70  		Pays:            rawdata.String(rawdata.RandString(10, true)),
    71  		Tels:            []string{"7987987979", "897779897998789"},
    72  	}}
    73  	return pers, resp
    74  }
    75  
    76  func TestFicheSanitaire(t *testing.T) {
    77  	signature, err := os.Open("/home/benoit/Images/barre_verticale.png")
    78  	if err != nil {
    79  		t.Fatal(err)
    80  	}
    81  	defer signature.Close()
    82  
    83  	f, err := os.Create("local/fiche_sanitaire.pdf")
    84  	if err != nil {
    85  		t.Fatal(err)
    86  	}
    87  	pers, resp := data()
    88  	if err = FicheSanitaire(pers, resp, f); err != nil {
    89  		t.Fatal(err)
    90  	}
    91  }
    92  
    93  func TestPdftk(t *testing.T) {
    94  	if err := CheckPdfToolkit(); err != nil {
    95  		t.Fatal(err)
    96  	}
    97  }
    98  
    99  func TestMerge(t *testing.T) {
   100  	files := []string{"local/attestation.pdf", "local/fiche_sanitaire.pdf", "local/attestation.pdf"}
   101  	var bufs [][]byte
   102  	for _, filename := range files {
   103  		content, err := ioutil.ReadFile(filename)
   104  		if err != nil {
   105  			t.Fatal(err)
   106  		}
   107  		bufs = append(bufs, content)
   108  	}
   109  	f, err := os.Create("local/fiche_sanitaire_merged.pdf")
   110  	if err != nil {
   111  		t.Fatal(err)
   112  	}
   113  	defer f.Close()
   114  	if err := MergePdfs(bufs, f); err != nil {
   115  		t.Fatal(err)
   116  	}
   117  }
   118  
   119  func TestFicheSanitaires(t *testing.T) {
   120  	f, err := os.Create("local/fiche_sanitaire.pdf")
   121  	if err != nil {
   122  		t.Fatal(err)
   123  	}
   124  	var perss, resps []rawdata.Personne
   125  	for i := 0; i < 7; i++ {
   126  		pers, resp := data()
   127  		perss = append(perss, pers)
   128  		resps = append(resps, resp)
   129  	}
   130  	if err = FicheSanitaires(perss, resps, f); err != nil {
   131  		t.Fatal(err)
   132  	}
   133  }