Add the ClassLoader.
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

main 0.6.3
KKlochko 2 years ago
parent 19f638e091
commit bcdd11c5a3

@ -0,0 +1,26 @@
package space.kklochko.simple_jbdd.tests.loaders;
import java.util.ArrayList;
import java.util.Set;
public class ClassLoader<T> {
AbstractNameClassLoader nameLoader;
public ClassLoader(AbstractNameClassLoader nameLoader) {
this.nameLoader = nameLoader;
}
public ArrayList<T> load() {
Set<Class<?>> names = nameLoader.load();
ArrayList<T> classes = new ArrayList<>();
for(Class<?> name : names) {
SingleClassLoader loader = new SingleClassLoader(name.getName());
classes.add((T) loader.load());
}
return classes;
}
}

@ -0,0 +1,43 @@
package space.kklochko.simple_jbdd.tests.loaders
import spock.lang.Narrative
import spock.lang.Specification
import spock.lang.Subject
import spock.lang.Title
@Narrative("""The loader must return a test classes or null, so
those tests check if responses are right.
""")
@Title("Integrated tests for ClassLoader.")
class IntegratedClassLoader extends Specification {
def "The classes have been loaded."() {
given: "I have a name class loader"
def nameLoader = new NameClassLoader()
and: "I have a loader for classes"
@Subject
def loader = new ClassLoader(nameLoader)
when: "The classes were loaded"
def classes = loader.load()
then: "Checking that the test result is expected"
3 == classes.size()
}
def "The classes must be represent the Test interface."() {
given: "I have a name class loader"
def nameLoader = new NameClassLoader()
and: "I have a loader for classes"
@Subject
def loader = new ClassLoader(nameLoader)
when: "The classes were loaded"
def classes = loader.load()
then: "Checking that the test result is expected"
classes.every({ space.kklochko.simple_jbdd.tests.Test.class.isAssignableFrom(it) })
}
}
Loading…
Cancel
Save