package org.robotframework.javalib.library; import junit.framework.TestCase; public class ClassLoadingIntegrationTest extends TestCase { private MockClassLoader mockClassLoader; protected void setUp() throws Exception { mockClassLoader = new MockClassLoader(); } public void testClassPathLibraryUsesProvidedClassLoaderForKeywordCreation() throws Exception { ClassPathLibrary library = createClassPathLibraryWithMockClassLoader(); library.runKeyword("Empty Keyword", null); assertClassWasLoaded("org.robotframework.javalib.keyword.EmptyKeyword"); } public void testClassPathLibraryUsesProvidedClassLoaderForKeywordExtraction() throws Exception { ClassPathLibrary library = createClassPathLibraryWithMockClassLoader(); library.getKeywordNames(); assertProvidedClassLoaderWasUsedForSearching(); } private void assertProvidedClassLoaderWasUsedForSearching() { assertTrue(mockClassLoader.searchedResources.contains("org/")); } private void assertClassWasLoaded(String expectedClassToBeLoaded) { if (mockClassLoader.loadedClasses.size() < 1) { fail("0 classes loaded through custom class loader"); } assertTrue(mockClassLoader.loadedClasses.contains(expectedClassToBeLoaded)); } private ClassPathLibrary createClassPathLibraryWithMockClassLoader() { ClassPathLibrary library = new ClassPathLibrary(); library.setKeywordPattern("org/**/keyword/**.class"); library.setClassLoader(mockClassLoader); return library; } }