package org.softlang.company.tests; import org.softlang.company.model.company.impl.bean.CompanyImpl; import org.softlang.company.model.company.factory.BeanFactory; import org.softlang.company.features.features.*; import org.junit.*; import static org.junit.Assert.assertEquals; /** * Test cases related to observability */ public class Observability { private CompanyImpl sampleCompany; @Before public void createSampleCompany() { sampleCompany = (CompanyImpl)Basics.createSampleCompany(new BeanFactory()); } /** * Test Logging feature */ @Test public void testLogging() { Logging log = new Logging(); ((CompanyImpl)sampleCompany).addObserver(log); SimpleCut cut = new SimpleCut(); cut.postorder(sampleCompany); assertEquals(7, log.getSize()); } /** * Test Precedence feature */ @Test public void testPrecedence() { Precedence prec = new Precedence(); ((CompanyImpl)sampleCompany).addObserver(prec); OrderedCut cut = new OrderedCut(); cut.postorder(sampleCompany); } @Test(expected=IllegalArgumentException.class) public void testPrecedenceException() { Precedence prec = new Precedence(); ((CompanyImpl)sampleCompany).addObserver(prec); SimpleCut cut = new SimpleCut(); cut.postorder(sampleCompany); } }