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; /** * * @author jan * * cqCompany means Command & Query company * fsCompany means FunctionSequence company */ public class CompanyBuilderTest { @Test public void testCompanyWithDepartments() { String name = "abc2"; Company cqCompany = new Company(); cqCompany.setName(name); Department dep1 = new Department(); dep1.setName("dep1"); cqCompany.getDepts().add(dep1); Department dep2 = new Department(); dep2.setName("dep2"); cqCompany.getDepts().add(dep2); CompanyBuilder builder = new CBCompanyWithDepartments(); builder.run(); Company fcCompany = builder.getValue(); assertEquals(cqCompany, fcCompany); } @Test public void testSimpleCompany() { String name = "abc2"; Company cqCompany = new Company(); cqCompany.setName(name); CompanyBuilder builder = new CBSimpleCompany(); builder.run(); Company fcCompany = builder.getValue(); assertEquals(cqCompany, fcCompany); } @Test public void testBigExample() { CBBigExample builder = new CBBigExample(); builder.run(); Company fcCompany = builder.getValue(); Company cqCompany = createCompanyCommandAndQuery(); assertEquals(cqCompany, fcCompany); } private Company createCompanyCommandAndQuery() { // Create company Company sampleCompany = new Company(); sampleCompany.setName("ACME Corporation"); // Create all employees Employee craig = new Employee(); craig.setName("Craig"); craig.setAddress("Redmond"); craig.setSalary(123456); Employee erik = new Employee(); erik.setName("Erik"); erik.setAddress("Utrecht"); erik.setSalary(12345); Employee ralf = new Employee(); ralf.setName("Ralf"); ralf.setAddress("Koblenz"); ralf.setSalary(1234); Employee ray = new Employee(); ray.setName("Ray"); ray.setAddress("Redmond"); ray.setSalary(234567); Employee klaus = new Employee(); klaus.setName("Klaus"); klaus.setAddress("Boston"); klaus.setSalary(23456); Employee karl = new Employee(); karl.setName("Karl"); karl.setAddress("Riga"); karl.setSalary(2345); Employee joe = new Employee(); joe.setName("Joe"); joe.setAddress("Wifi City"); joe.setSalary(2344); // Create research department Department research = new Department(); research.setManager(craig); research.setName("Research"); research.getEmployees().add(erik); research.getEmployees().add(ralf); sampleCompany.getDepts().add(research); // Create development department Department development = new Department(); development.setManager(ray); development.setName("Development"); sampleCompany.getDepts().add(development); // Create sub-department dev1 Department dev1 = new Department(); dev1.setName("Dev1"); dev1.setManager(klaus); development.getSubdepts().add(dev1); // Create sub-department dev11 Department dev11 = new Department(); dev11.setName("Dev1.1"); dev11.setManager(karl); dev11.getEmployees().add(joe); dev1.getSubdepts().add(dev11); return sampleCompany; } }