package scenic3.tester;
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import scenic3.ScenicPage;
import scenic3.Urls;
import scenic3.UrlsImpl;
public abstract class PageTestCase {
protected PageTester tester;
/**
* Default Constructor.
* @deprecated use a constructor specify target AppUrls and PageClass
*/
@Deprecated
public PageTestCase() {
}
/**
* Constructor.
* <p>Test case construction fail when target AppUrls don't support target PageClass.</p>
* @param appUrlClass class object of implementation of {@link Urls} such as AppUrls
* @param pageClass class object of PageClass
*/
public PageTestCase(Class<? extends UrlsImpl> appUrlClass, Class<? extends ScenicPage> pageClass) {
assertAppUrls(appUrlClass, pageClass);
}
@Before
public void setUp() throws Exception {
tester = new PageTester(getClass());
tester.setUp();
}
@After
public void tearDown() throws Exception {
tester.tearDown();
}
/**
*
* @param appUrlClass
* @param pageClass
* @since 0.5.0
*/
public static void assertAppUrls(Class<? extends UrlsImpl> appUrlClass, Class<? extends ScenicPage> pageClass) {
try {
UrlsImpl urls = appUrlClass.newInstance();
Assert.assertTrue(appUrlClass.getName() + " doesn't contain " + pageClass.getName(),
urls.isSupport(pageClass));
} catch (Exception e) {
fail(e.getMessage());
}
}
}