All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.puresoltechnologies.purifinity.server.test.AbstractMetricTest Maven / Gradle / Ivy

The newest version!
package com.puresoltechnologies.purifinity.server.test;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import java.io.File;
import java.util.Collection;
import java.util.Properties;

import javax.inject.Inject;

import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;

import com.puresoltechnologies.commons.misc.io.FileSearchConfiguration;
import com.puresoltechnologies.purifinity.analysis.api.AnalysisProjectInformation;
import com.puresoltechnologies.purifinity.analysis.api.AnalysisProjectSettings;
import com.puresoltechnologies.purifinity.server.core.api.analysis.AnalyzerServiceManager;
import com.puresoltechnologies.purifinity.server.core.api.analysis.store.AnalysisStoreException;
import com.puresoltechnologies.purifinity.server.core.api.analysis.store.AnalysisStoreService;
import com.puresoltechnologies.purifinity.server.domain.analysis.AnalyzerServiceInformation;
import com.puresoltechnologies.purifinity.wildfly.test.AbstractServerTest;

/**
 * This class is used for metrics tests as parent class. This class guarantees a
 * initialized analysis environment.
 * 
 * @author Rick-Rainer Ludwig
 * 
 */
public abstract class AbstractMetricTest extends AbstractServerTest {

    @Inject
    private AnalysisStoreService analysisStore;

    @Inject
    private AnalyzerServiceManager analyzerServiceManager;

    @BeforeClass
    public static void cleanCodeAnalysisDirectory() {
	File codeAnalysisDirectory = null;
	assertNotNull("Storage directory is not available.",
		codeAnalysisDirectory);
	// if (codeAnalysisDirectory.exists()) {
	// DirectoryUtilities.deleteDirectoryRecursivly(codeAnalysisDirectory);
	// }
    }

    @Before
    public void checkEnvironment() {
	assertNotNull("Analysis store is null!", analysisStore);

	Collection languages = analyzerServiceManager
		.getServices();
	assertNotNull("The list of languages is null!", languages);
	assertTrue("No programming languages found!", languages.size() > 0);
    }

    private AnalysisProjectInformation analysisProjectInformation;

    private final File directory;
    private final FileSearchConfiguration fileSearchConfiguration;

    public AbstractMetricTest(File directory,
	    FileSearchConfiguration fileSearchConfiguration) {
	super();
	assertNotNull("Project directory is null.", directory);
	assertTrue("Project directory '" + directory + "' is not existing.",
		directory.exists());
	this.directory = directory;
	System.out.println("Test test project directory is '" + directory
		+ "'...");
	assertNotNull("Search configuration is null.", fileSearchConfiguration);
	this.fileSearchConfiguration = fileSearchConfiguration;
    }

    @Before
    public final void setup() throws AnalysisStoreException {
	Properties properties = new Properties();
	properties.setProperty("directory", directory.getPath());
	analysisProjectInformation = analysisStore.createAnalysisProject(
		"test_project", new AnalysisProjectSettings("TestProject",
			"This project was created for testing purposes.",
			fileSearchConfiguration, properties));
	assertNotNull("Analysis project was not created and is null.",
		analysisProjectInformation);
    }

    @After
    public final void destroy() throws AnalysisStoreException {
	analysisStore.removeAnalysisProject(analysisProjectInformation
		.getProjectId());
    }

    protected AnalysisProjectInformation getAnalysisProject() {
	return analysisProjectInformation;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy