protected TestCluster(){ environmentAugmenter = new EnvironmentTestClusterAugmenter(this); environmentMethods = new LinkedHashSet<>(); }
public void handleRuntimeAccesses(TestCase test) { environmentAugmenter.handleRuntimeAccesses(test); }
handleReplaceCalls(); handleVirtualFS(test); handleSystemIn(); handleGUI(); handleNetwork(test); handleJEE(test);
private void addEnvironmentDependency(Class<?> klass) { if (handledClasses.contains(klass.getCanonicalName()) || !TestClusterUtils.isEvoSuiteClass(klass)) { return; // already handled, or not valid } handledClasses.add(klass.getCanonicalName()); boolean excludeClass = klass.getAnnotation(EvoSuiteClassExclude.class) != null; // do not consider constructors for (Method m : klass.getMethods()) { if (shouldSkip(excludeClass, m)) { continue; } GenericAccessibleObject gm = new GenericMethod(m, klass); GenericClass gc = new GenericClass(klass); TestCluster.getInstance().addModifier(gc, gm); testClusterGenerator.addNewDependencies(Arrays.asList(m.getParameterTypes())); Class<?> returnType = m.getReturnType(); if (!returnType.equals(Void.TYPE)) { GenericClass genclass = new GenericClass(returnType); TestCluster.getInstance().invalidateGeneratorCache(genclass); TestCluster.getInstance().addGenerator(genclass, gm); addEnvironmentDependency(returnType); } } }
private void handleJEE(TestCase test) { JeeData jeeData = TestDataJavaEE.getInstance().getJeeData(); test.getAccessedEnvironment().setJeeData(jeeData); if (jeeData.lookedUpContextNames.size() > 0) { addEnvironmentClassToCluster(EvoNamingContext.class); // TODO add method with right input type } if (!Properties.HANDLE_SERVLETS) { /* * Started to prepare custom mocks for Servlets, but then realized * that their behavior is very basic. As such, most likely they are * not needed, as they could be much better replaced by functional * mocks with Mockito... */ return; } if (jeeData.wasAServletInitialized) { addEnvironmentClassToCluster(EvoServletState.class); } // TODO TestDataJavaEE data for Servlets }
if (shouldSkip(excludeClass, c)) { continue; if (shouldSkip(excludeClass, m)) { continue; TestCluster.getInstance().invalidateGeneratorCache(genclass); TestCluster.getInstance().addGenerator(genclass, gm); addEnvironmentDependency(returnType);
private void handleVirtualFS(TestCase test) { test.getAccessedEnvironment().addLocalFiles(VirtualFileSystem.getInstance().getAccessedFiles()); if (!hasAddedFiles && VirtualFileSystem.getInstance().getAccessedFiles().size() > 0) { logger.info("Adding EvoSuiteFile calls to cluster"); hasAddedFiles = true; addEnvironmentClassToCluster(FileSystemHandling.class); } }