github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/directeurs/animateurs_test.go (about)

     1  package directeurs
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	rd "github.com/benoitkugler/goACVE/server/core/rawdata"
     8  )
     9  
    10  func TestUpdateAnimateurs(t *testing.T) {
    11  	req := newDummyRequest(t, forceComplet)
    12  	rc, err := ct.setupRequestComplet(req, loadEquipiers)
    13  	if err != nil {
    14  		t.Fatal(err)
    15  	}
    16  	groupe, err := rc.createGroupe(rd.Groupe{Nom: "TEST"})
    17  	if err != nil {
    18  		t.Fatal(err)
    19  	}
    20  	liens, err := rc.loadGroupeAnimateurs(groupe.Id)
    21  	if err != nil {
    22  		t.Fatal(err)
    23  	}
    24  	if L := len(liens.GroupeEquipiers); L != 0 {
    25  		t.Fatalf("expected no animateurs in groupe, got %d", L)
    26  	}
    27  	if L := len(liens.ParticipantEquipiers); L != 0 {
    28  		t.Fatalf("expected no animateurs for inscrits, got %d", L)
    29  	}
    30  	equipiers := rc.camp.GetEquipe(nil)
    31  	if L := len(equipiers); L < 2 {
    32  		t.Fatalf("need at least 2 equipiers, got %d", L)
    33  	}
    34  	err = rc.addGroupeAnimateurs(AddGroupeAnimateursIn{
    35  		IdGroupe: groupe.Id,
    36  		IdEquipiers: rd.Ids{
    37  			equipiers[0].Id,
    38  			equipiers[1].Id,
    39  		},
    40  	})
    41  	if err != nil {
    42  		t.Fatal(err)
    43  	}
    44  
    45  	err = rc.deleteGroupeAnimateur(DeleteGroupeAnimateurIn{IdEquipier: equipiers[0].Id, IdGroupe: groupe.Id})
    46  	if err != nil {
    47  		t.Fatal(err)
    48  	}
    49  
    50  	liens, err = rc.loadGroupeAnimateurs(groupe.Id)
    51  	if err != nil {
    52  		t.Fatal(err)
    53  	}
    54  	if L := len(liens.GroupeEquipiers); L != 1 {
    55  		t.Fatalf("expected 2 animateurs in groupe, got %d", L)
    56  	}
    57  
    58  }
    59  
    60  func TestSlice(t *testing.T) {
    61  	inscritsToAffect := make([]int, 15)
    62  	for nbAnim := range [4]int{} {
    63  		tailleCourante := 0
    64  		nbToAffect := 3 - tailleCourante
    65  		if nbToAffect <= 0 || len(inscritsToAffect) == 0 {
    66  			// on dépasse la taille recommandée -> pas d'affectation
    67  			continue
    68  		}
    69  		if nbToAffect > len(inscritsToAffect) {
    70  			nbToAffect = len(inscritsToAffect)
    71  		}
    72  		chunk := inscritsToAffect[0:nbToAffect] // extrait les inscrits
    73  		inscritsToAffect = inscritsToAffect[nbToAffect:]
    74  		fmt.Println("anim ", nbAnim, " : ", len(chunk), len(inscritsToAffect))
    75  	}
    76  }