package jenkins.plugins.nodejs; import static org.junit.Assert.*; import java.io.File; import java.io.IOException; import hudson.EnvVars; import hudson.Launcher; import hudson.model.AbstractBuild; import hudson.model.BuildListener; import hudson.tasks.Builder; abstract class VerifyEnvVariableBuilder extends Builder { @Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { EnvVars env = build.getEnvironment(listener); verify(env); return true; } public abstract void verify(EnvVars env); public static final class FileVerifier extends VerifyEnvVariableBuilder { @Override public void verify(EnvVars env) { String var = NodeJSConstants.NPM_USERCONFIG; String value = env.get(var); assertTrue("variable " + var + " not set", env.containsKey(var)); assertNotNull("empty value for environment variable " + var, value); assertTrue("file of variable " + var + " does not exists or is not a file", new File(value).isFile()); } } }