package org.softlang.company; import org.junit.Before; import org.junit.Test; import rx.observables.BlockingObservable; import rx.util.functions.Action1; import rx.Observable; import static org.junit.Assert.*; public class CompanyTest { Company theCompany; @Before public void before() { theCompany = new Company("ACME Corporation"); Department research = new Department("Research", new Employee("Craig", new Address("Redmond"), 123456.0)); research.addEmployee(new Employee("Erik", new Address("Utrecht"), 12345.0)); research.addEmployee(new Employee("Ralf", new Address("Koblenz"), 1234.0)); theCompany.addDepartment(research); Department development = new Department("Development", new Employee("Ray", new Address("Redmond"), 234567.0)); Department dev1 = new Department("Dev1", new Employee("Klaus", new Address("Boston"), 23456.0)); Department dev11 = new Department("Dev1.1", new Employee("Karl", new Address("Riga"), 2345.0)); dev11.addEmployee(new Employee("Joe", new Address("Wifi City"), 2344.0)); dev1.addDepartment(dev11); development.addDepartment(dev1); theCompany.addDepartment(development); } @Test public void testTotal() { theCompany.total().subscribe(new Action1<Double>() { @Override public void call(Double aDouble) { assertEquals(aDouble, 399747.0, 1e-10); } }); } @Test public void testCut() { BlockingObservable.from(Observable.from(theCompany)).forEach(new Action1<Company>() { @Override public void call(Company company) { company.cut(); } }); theCompany.total().subscribe(new Action1<Double>() { @Override public void call(Double aDouble) { assertEquals(aDouble, 399747.0 * 0.5, 1e-10); } }); } }