package org.softlang.company.tests; import static org.junit.Assert.assertEquals; import static org.softlang.company.features.CompanyBuilder.name; import static org.softlang.company.features.CompanyBuilder.department; import static org.softlang.company.features.CompanyBuilder.employees; import static org.softlang.company.features.CompanyBuilder.manager; 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 DepartmentBuilderTest { private static final String NAME_SUBDEP = "subdep"; private static final String NAME_COMP = "abc2"; private static final String NAME_DEP = "aggs2"; private static final String NAME_EMPL = "Hugo"; private static final Double SALARY = 1.43; private static final String ADDRESS = "Berlin"; @Test public void testDepartment() { Company cqCompany = createSampleCompany(); Company mcCompany = CompanyBuilder .company( name(NAME_COMP), department( name(NAME_DEP), manager(null), employees() ) ); assertEquals(cqCompany, mcCompany); } @Test public void testManager() { Company cqCompany = createSampleCompany(); Employee manager = createSampleEmployee(); cqCompany.getDepts().get(0).setManager(manager); Company mcCompany = CompanyBuilder .company( name(NAME_COMP), department( name(NAME_DEP), manager(this.createSampleEmployee()), employees() ) ); assertEquals(cqCompany, mcCompany); } @Test public void testSubDeparment() { Company cqCompany = createSampleCompany(); Department subdep = new Department(); subdep.setName(NAME_SUBDEP); cqCompany.getDepts().get(0).getSubdepts().add(subdep); Company mcCompany = CompanyBuilder .company( name(NAME_COMP), department( name(NAME_DEP), manager(null), employees(), department( name(NAME_SUBDEP), manager(null), employees() ) ) ); assertEquals(cqCompany, mcCompany); } @Test public void testEmployees() { Company cqCompany = createSampleCompany(); cqCompany.getDepts().get(0).getEmployees().add(createSampleEmployee()); Company mcCompany = CompanyBuilder .company( name(NAME_COMP), department( name(NAME_DEP), manager(null), employees(createSampleEmployee()) ) ); assertEquals(cqCompany, mcCompany); } private Company createSampleCompany() { Company cqCompany = new Company(); cqCompany.setName(NAME_COMP); Department dep = new Department(); dep.setName(NAME_DEP); cqCompany.getDepts().add(dep); return cqCompany; } private Employee createSampleEmployee() { Employee empl = new Employee(); empl.setName(NAME_EMPL); empl.setAddress(ADDRESS); empl.setSalary(SALARY); return empl; } }