package zend; import org.develnext.jphp.zend.ZendJvmTestCase; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.runners.MethodSorters; import php.runtime.exceptions.support.ErrorType; @RunWith(JUnit4.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class TraitsTest extends ZendJvmTestCase { @Test public void testLanguage() { check("zend/traits/language001.php"); check("zend/traits/language002.php"); check("zend/traits/language003.php"); check("zend/traits/language004.php"); check("zend/traits/language005.php"); check("zend/traits/language006.php"); check("zend/traits/language007.php"); check("zend/traits/language008a.php", true); check("zend/traits/language008b.php", true); check("zend/traits/language009.php"); check("zend/traits/language010.php", true); check("zend/traits/language011.php", true); check("zend/traits/language012.php"); check("zend/traits/language013.php"); check("zend/traits/language014.php", true); check("zend/traits/language015.php", true); check("zend/traits/language016.php", true); check("zend/traits/language017.php", true); check("zend/traits/language018.php", true); check("zend/traits/language019.php", true); } @Test public void testInheritance() { check("zend/traits/inheritance001.php", ErrorType.E_ALL.value); check("zend/traits/inheritance002.php", ErrorType.E_ALL.value); check("zend/traits/inheritance003.php", true, ErrorType.E_ALL.value); } @Test public void testInterface() { check("zend/traits/interface_001.php", ErrorType.E_ALL.value); check("zend/traits/interface_002.php", true, ErrorType.E_ALL.value); check("zend/traits/interface_003.php", ErrorType.E_ALL.value); } @Test public void testFlattening() { check("zend/traits/flattening001.php", ErrorType.E_ALL.value); check("zend/traits/flattening002.php", ErrorType.E_ALL.value); check("zend/traits/flattening003.php", ErrorType.E_ALL.value); } @Test public void testMethods() { check("zend/traits/methods_001.php"); check("zend/traits/methods_002.php", true); check("zend/traits/methods_003.php"); } @Test public void testNoctor() { check("zend/traits/noctor001.php"); } @Test public void testProperty() { check("zend/traits/property001.php", ErrorType.E_ALL.value | ErrorType.E_STRICT.value); check("zend/traits/property002.php", ErrorType.E_ALL.value); check("zend/traits/property003.php", true); check("zend/traits/property004.php", true); check("zend/traits/property005.php", true, ErrorType.E_ALL.value | ErrorType.E_STRICT.value); check("zend/traits/property006.php", ErrorType.E_ALL.value | ErrorType.E_STRICT.value); check("zend/traits/property007.php", ErrorType.E_ALL.value | ErrorType.E_STRICT.value); check("zend/traits/property008.php", ErrorType.E_ALL.value | ErrorType.E_STRICT.value); } @Test public void testStatic() { check("zend/traits/static_001.php"); check("zend/traits/static_002.php"); check("zend/traits/static_003.php"); check("zend/traits/static_004.php"); } @Test public void testGetCalledClass() { check("zend/traits/static_get_called_class.php"); } @Test public void testTraitConstant() { check("zend/traits/trait_constant_001.php"); check("zend/traits/trait_constant_002.php"); } @Test public void testConflict() { check("zend/traits/conflict001.php", true); check("zend/traits/conflict002.php", ErrorType.E_ALL.value); check("zend/traits/conflict003.php", true); } @Test public void testError() { check("zend/traits/error_001.php", true); check("zend/traits/error_002.php", true); check("zend/traits/error_003.php", true); check("zend/traits/error_004.php", true); check("zend/traits/error_005.php", true); check("zend/traits/error_006.php", true); check("zend/traits/error_007.php", true); check("zend/traits/error_008.php", true); check("zend/traits/error_009.php", true); check("zend/traits/error_010.php", true); check("zend/traits/error_011.php", true); check("zend/traits/error_012.php", true); check("zend/traits/error_013.php", true); check("zend/traits/error_014.php", true); check("zend/traits/error_015.php", true); check("zend/traits/error_016.php", true); } }