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 }