github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/core/rawdata/composites/participants_test.go (about) 1 package composites 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/benoitkugler/goACVE/logs" 8 "github.com/benoitkugler/goACVE/server/core/rawdata" 9 rd "github.com/benoitkugler/goACVE/server/core/rawdata" 10 ) 11 12 func newDate(jour uint8, mois time.Month, annee int) rd.Date { 13 return rd.Date(time.Date(annee, mois, int(jour), 0, 0, 0, 0, time.UTC)) 14 } 15 16 func TestAgeValide(t *testing.T) { 17 type testCase struct { 18 dateNaissance rd.Date 19 expectedMin, expectedMax rd.StatutAttente 20 } 21 22 var c rd.Camp 23 c.DateDebut = newDate(8, time.August, 2020) 24 c.AgeMin = 6 25 c.AgeMax = 12 26 datesNaissances := []testCase{ 27 {dateNaissance: newDate(2, time.April, 1994), expectedMin: rd.Inscrit, expectedMax: rd.Attente}, 28 {dateNaissance: newDate(2, time.April, 2010), expectedMin: rd.Inscrit, expectedMax: rd.Inscrit}, 29 {dateNaissance: newDate(8, time.August, 2014), expectedMin: rd.Inscrit, expectedMax: rd.Inscrit}, 30 {dateNaissance: newDate(9, time.August, 2007), expectedMin: rd.Inscrit, expectedMax: rd.Inscrit}, 31 {dateNaissance: newDate(9, time.August, 2014), expectedMin: rd.Refuse, expectedMax: rd.Inscrit}, // moins de 6ans 32 } 33 for _, testC := range datesNaissances { 34 minOk, maxOk := c.HasAgeValide(rd.BasePersonne{DateNaissance: testC.dateNaissance}) 35 if minOk != testC.expectedMin { 36 t.Errorf("test %v : expected min status %s, got %s", testC, testC.expectedMin, minOk) 37 } 38 if maxOk != testC.expectedMax { 39 t.Errorf("test %v : expected max status %s, got %s", testC, testC.expectedMax, maxOk) 40 } 41 } 42 } 43 44 func TestLoadCamps(t *testing.T) { 45 db, err := rawdata.ConnectDB(logs.DBDev) 46 if err != nil { 47 t.Fatal(err) 48 } 49 defer db.Close() 50 rows, err := db.Query("SELECT * FROM participants LIMIT 100") 51 if err != nil { 52 t.Fatal(err) 53 } 54 parts, err := rd.ScanParticipants(rows) 55 if err != nil { 56 t.Fatal(err) 57 } 58 var ps ParticipantPersonnes 59 for _, part := range parts { 60 ps = append(ps, ParticipantPersonne{Participant: part}) 61 } 62 pc, err := ps.LoadCamps(db) 63 if err != nil { 64 t.Fatal(err) 65 } 66 if len(pc) != len(ps) { 67 t.Error("expected same length") 68 } 69 }