package exo2.entreprise;

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.Map;
import java.util.TreeMap;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
 * @author ouziri
 * @version 1.0 
 *
 */

public class TestsEmbaucheEntrepirse {

	Entreprise e = new Entreprise();
	
	@BeforeEach
	public void initTests() {
		// seuls ces 2 services sont considérés, pas d'ajout ni de suppression de services dans cet exercice
		Map<String, Service> services = new TreeMap<String, Service>();
		services.put("RH", new ServAdministratif("RH"));
		services.put("Informatique", new ServTechnique("Informatique"));
		e.setServices(services);
	}
	
	@Test
	public void testAdministratifs() throws ServiceInexistantException {
		Personnel p = e.embaucherPersonnel("Dupont", TypesPersonnelsEnum.Administratif, 3000, "RH");
		assertEquals(3300, p.getSalaire(), 0.00001);
		p.setEnConge(true);
		assertEquals(3000, p.getSalaire(), 0.00001);
	}
	
	@Test
	public void testTechniciens() throws ServiceInexistantException {
		Personnel p = e.embaucherPersonnel("Dupont", TypesPersonnelsEnum.Technique, 6000, "Informatique");
		assertEquals(0, p.getSalaire(), 0.00001);
		p.setNbHeuresTravaillees(30);
		assertEquals(6000, p.getSalaire(), 0.00001);
		p.setNbHeuresTravaillees(15);
		assertEquals(3000, p.getSalaire(), 0.00001);
	}
	
}
