package com.ibm.sbt.services;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
import org.junit.After;
import org.junit.Before;
import com.ibm.commons.runtime.Application;
import com.ibm.commons.runtime.Context;
import com.ibm.commons.runtime.RuntimeFactory;
import com.ibm.commons.runtime.impl.app.RuntimeFactoryStandalone;
import com.ibm.sbt.test.lib.TestEnvironment;
/**
* BaseUnitTest class to initialize context and Endpoint. All junits should
* extend form this class and call initializeContext() and
* authenticateEndpoint() from the setUp()
*
* @author Vineet Kanwal
*
*/
public abstract class BaseUnitTest {
private Application application;
private Context context;
protected Properties properties = new Properties();
@Before
public final void setUp() {
RuntimeFactory runtimeFactory = new RuntimeFactoryStandalone();
application = runtimeFactory.initApplication(null);
context = Context.init(application, null, null);
TestEnvironment.setRequiresAuthentication(true);
loadProperties();
}
public void loadProperties(){
if (properties.isEmpty()) {
try {
properties.load(new FileInputStream(new File(
"config/test.properties")));
} catch (Exception e) {
}
}
}
/**
* This method can be used to remove trailing numbers (random or Timestamp in millis)
* to assert the equality of a string compared against mocked data
* @param inputString
* @return
*/
protected String unRandomize(String inputString){
return TestEnvironment.isMockMode()?inputString.trim().replaceAll("([0-9a-f]{8,12}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{8,12}|-?[0-9])*$", ""):inputString;
}
@After
public final void tearDown() {
Context.destroy(context);
Application.destroy(application);
}
}