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

com.puresoltechnologies.purifinity.server.common.test.AbstractServiceTest Maven / Gradle / Ivy

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

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

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.net.URL;

import org.junit.BeforeClass;
import org.junit.Test;

public class AbstractServiceTest {

	private static final File serviceDirectory = new File(
			"src/main/resources/META-INF/services");

	@BeforeClass
	public static void checkServicePresence() {
		assertTrue(serviceDirectory.exists());
	}

	@Test
	public void testServices() throws Exception {
		File[] serviceFiles = serviceDirectory.listFiles();
		for (File serviceFile : serviceFiles) {
			System.out.println("Found service file '" + serviceFile + "'.");
			checkServiceFile(serviceFile);
		}
	}

	private void checkServiceFile(File serviceFile) throws Exception {
		String interfaceName = serviceFile.getName();
		System.out.println("\tCheck interface '" + interfaceName
				+ "' for presence.");
		Class clazz = Class.forName(interfaceName);
		assertNotNull(clazz);
		try (FileReader fileReader = new FileReader(serviceFile)) {
			try (BufferedReader bufferedReader = new BufferedReader(fileReader)) {
				String className = bufferedReader.readLine();
				while (className != null) {
					System.out.println("\tCheck implementation '" + className
							+ "' for presence.");
					String classFileName = "/"
							+ className.replaceAll("\\.", "/") + ".class";
					URL classFileURL = getClass().getResource(classFileName);
					assertNotNull(classFileURL);
					System.out.println("\tFound implementation at '"
							+ classFileURL + "'.");
					className = bufferedReader.readLine();
				}
			}
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy