package org.softlang.company.tests;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.softlang.company.features.CompanyBuilder;
import org.softlang.company.model.Company;
import org.softlang.company.model.Department;
import org.softlang.company.model.Employee;
public class EmployeeBuilderTest {
private final String NAME_COMP = "abc2";
private final String NAME_DEP = "dep1";
private final String NAME_EMPL = "Hugo";
private final Double SALARY = 1.43;
private final String ADDRESS = "Berlin";
private final String NAME_EMPL2 = "Paul";
private final Double SALARY2 = 1.444;
private final String ADDRESS2 = "Rostock";
private final String NAME_EMPL3 = "Lara";
private final Double SALARY3 = 653.42;
private final String ADDRESS3 = "Koblenz";
@Test
public void testSingleEmployee() {
Company cqCompany = new Company();
cqCompany.setName(NAME_COMP);
Department dep = createSampleDepartment();
dep.getEmployees().add(createSampleEmployee());
cqCompany.getDepts().add(dep);
CompanyBuilder builder = new CBSingleEmployee();
builder.run();
Company fcCompany = builder.getValue();
assertEquals(cqCompany, fcCompany);
}
@Test
public void testManager() {
Company cqCompany = new Company();
cqCompany.setName(NAME_COMP);
Department dep = createSampleDepartment();
dep.setManager(createSampleEmployee());
cqCompany.getDepts().add(dep);
CompanyBuilder builder = new CBManager();
builder.run();
Company fcCompany = builder.getValue();
assertEquals(cqCompany, fcCompany);
}
@Test
public void testManagerPlusEmployees() {
Company cqCompany = new Company();
cqCompany.setName(NAME_COMP);
Department dep = createSampleDepartment();
dep.setManager(createSampleEmployee());
dep.getEmployees().add(createSampleEmployee2());
dep.getEmployees().add(createSampleEmployee3());
cqCompany.getDepts().add(dep);
CompanyBuilder builder = new CBManagerPlusEmployees();
builder.run();
Company fcCompany = builder.getValue();
assertEquals(cqCompany, fcCompany);
}
private Department createSampleDepartment() {
Department dep = new Department();
dep.setName(NAME_DEP);
return dep;
}
private Employee createSampleEmployee() {
Employee empl = new Employee();
empl.setName(NAME_EMPL);
empl.setAddress(ADDRESS);
empl.setSalary(SALARY);
return empl;
}
private Employee createSampleEmployee2() {
Employee empl = new Employee();
empl.setName(NAME_EMPL2);
empl.setAddress(ADDRESS2);
empl.setSalary(SALARY2);
return empl;
}
private Employee createSampleEmployee3() {
Employee empl = new Employee();
empl.setName(NAME_EMPL3);
empl.setAddress(ADDRESS3);
empl.setSalary(SALARY3);
return empl;
}
}