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;

import exo2.service.IPersonnel;
import exo2.service.ServAdministratif;
import exo2.service.ServTechnique;
import exo2.service.Service;
import exo2.service.ServiceInexistantException;

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

public class TestsEmbaucheEntreprise {

	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 {
		IPersonnel p = e.embaucherPersonnel(e.searchServiceByNom("RH"), "Dupont", 3000);
		assertEquals(3300, p.getSalaire(), 0.00001);
		p.setEnConge(true);
		assertEquals(3000, p.getSalaire(), 0.00001);
	}

	@Test
	public void testTechniciens() throws ServiceInexistantException {
		IPersonnel p = e.embaucherPersonnel(e.searchServiceByNom("Informatique"), "Pierre", 6000);
		assertEquals(0, p.getSalaire(), 0.00001);
		p.setNbJoursTravailles(30);
		assertEquals(6000, p.getSalaire(), 0.00001);
		p.setNbJoursTravailles(15);
		assertEquals(3000, p.getSalaire(), 0.00001);
	}

}
