mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-01-16 08:36:55 +01:00
Modified CveDB and Settings so that they are no longer singletons; first step in thread safety updates
This commit is contained in:
@@ -30,8 +30,6 @@ import java.util.Map;
|
||||
|
||||
import org.apache.commons.cli.ParseException;
|
||||
import org.apache.commons.cli.UnrecognizedOptionException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
@@ -42,7 +40,7 @@ import org.owasp.dependencycheck.utils.Settings.KEYS;
|
||||
/**
|
||||
* Tests for the {@link AppTest} class.
|
||||
*/
|
||||
public class AppTest {
|
||||
public class AppTest extends BaseTest {
|
||||
|
||||
/**
|
||||
* Test rule for asserting exceptions and their contents.
|
||||
@@ -50,29 +48,13 @@ public class AppTest {
|
||||
@Rule
|
||||
public ExpectedException expectedException = ExpectedException.none();
|
||||
|
||||
/**
|
||||
* Initialize the {@link Settings} singleton.
|
||||
*/
|
||||
@Before
|
||||
public void setUp() {
|
||||
Settings.initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean the {@link Settings} singleton.
|
||||
*/
|
||||
@After
|
||||
public void tearDown() {
|
||||
Settings.cleanup();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of ensureCanonicalPath method, of class App.
|
||||
*/
|
||||
@Test
|
||||
public void testEnsureCanonicalPath() {
|
||||
String file = "../*.jar";
|
||||
App instance = new App();
|
||||
App instance = new App(getSettings());
|
||||
String result = instance.ensureCanonicalPath(file);
|
||||
assertFalse(result.contains(".."));
|
||||
assertTrue(result.endsWith("*.jar"));
|
||||
@@ -85,7 +67,7 @@ public class AppTest {
|
||||
|
||||
/**
|
||||
* Assert that boolean properties can be set on the CLI and parsed into the
|
||||
* {@link Settings} singleton.
|
||||
* {@link Settings}.
|
||||
*
|
||||
* @throws Exception the unexpected {@link Exception}.
|
||||
*/
|
||||
@@ -165,13 +147,13 @@ public class AppTest {
|
||||
String[] args = {"-P", prop.getAbsolutePath(), "--suppression", "another-file.xml"};
|
||||
|
||||
// WHEN parsing the CLI arguments
|
||||
final CliParser cli = new CliParser();
|
||||
final CliParser cli = new CliParser(getSettings());
|
||||
cli.parse(args);
|
||||
final App classUnderTest = new App();
|
||||
final App classUnderTest = new App(getSettings());
|
||||
classUnderTest.populateSettings(cli);
|
||||
|
||||
// THEN the suppression file is set in the settings singleton for use in the application core
|
||||
assertThat("Expected the suppression file to be set in the Settings singleton", Settings.getString(KEYS.SUPPRESSION_FILE), is("another-file.xml"));
|
||||
// THEN the suppression file is set in the settings for use in the application core
|
||||
assertThat("Expected the suppression file to be set in the Settings", getSettings().getString(KEYS.SUPPRESSION_FILE), is("another-file.xml"));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -188,31 +170,25 @@ public class AppTest {
|
||||
String[] args = {"-P", prop.getAbsolutePath(), "--suppression", "first-file.xml", "another-file.xml"};
|
||||
|
||||
// WHEN parsing the CLI arguments
|
||||
final CliParser cli = new CliParser();
|
||||
final CliParser cli = new CliParser(getSettings());
|
||||
cli.parse(args);
|
||||
final App classUnderTest = new App();
|
||||
final App classUnderTest = new App(getSettings());
|
||||
classUnderTest.populateSettings(cli);
|
||||
|
||||
// THEN the suppression file is set in the settings singleton for use in the application core
|
||||
assertThat("Expected the suppression files to be set in the Settings singleton with a separator", Settings.getString(KEYS.SUPPRESSION_FILE), is("first-file.xml,another-file.xml"));
|
||||
// THEN the suppression file is set in the settings for use in the application core
|
||||
assertThat("Expected the suppression files to be set in the Settings with a separator", getSettings().getString(KEYS.SUPPRESSION_FILE), is("first-file.xml,another-file.xml"));
|
||||
}
|
||||
|
||||
private boolean testBooleanProperties(String[] args, Map<String, Boolean> expected) throws URISyntaxException, FileNotFoundException, ParseException, InvalidSettingException {
|
||||
Settings.initialize();
|
||||
try {
|
||||
final CliParser cli = new CliParser();
|
||||
cli.parse(args);
|
||||
App instance = new App();
|
||||
instance.populateSettings(cli);
|
||||
boolean results = true;
|
||||
for (Map.Entry<String, Boolean> entry : expected.entrySet()) {
|
||||
results &= Settings.getBoolean(entry.getKey()) == entry.getValue();
|
||||
}
|
||||
|
||||
return results;
|
||||
} finally {
|
||||
Settings.cleanup();
|
||||
this.reloadSettings();
|
||||
final CliParser cli = new CliParser(getSettings());
|
||||
cli.parse(args);
|
||||
App instance = new App(getSettings());
|
||||
instance.populateSettings(cli);
|
||||
boolean results = true;
|
||||
for (Map.Entry<String, Boolean> entry : expected.entrySet()) {
|
||||
results &= getSettings().getBoolean(entry.getKey()) == entry.getValue();
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright 2014 OWASP.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.owasp.dependencycheck;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.owasp.dependencycheck.utils.Settings;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jeremy Long
|
||||
*/
|
||||
public class BaseTest {
|
||||
|
||||
/**
|
||||
* The configured settings.
|
||||
*/
|
||||
private Settings settings;
|
||||
|
||||
/**
|
||||
* Initialize the {@link Settings}.
|
||||
*/
|
||||
@Before
|
||||
public void setUp() {
|
||||
settings = new Settings();
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean the {@link Settings}.
|
||||
*/
|
||||
@After
|
||||
public void tearDown() {
|
||||
settings.cleanup(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the settings for the test cases.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
protected Settings getSettings() {
|
||||
return settings;
|
||||
}
|
||||
|
||||
protected void reloadSettings() {
|
||||
tearDown();
|
||||
setUp();
|
||||
}
|
||||
}
|
||||
@@ -33,17 +33,7 @@ import org.owasp.dependencycheck.utils.Settings;
|
||||
*
|
||||
* @author Jeremy Long
|
||||
*/
|
||||
public class CliParserTest {
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpClass() throws Exception {
|
||||
Settings.initialize();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void tearDownClass() throws Exception {
|
||||
Settings.cleanup(true);
|
||||
}
|
||||
public class CliParserTest extends BaseTest {
|
||||
|
||||
/**
|
||||
* Test of parse method, of class CliParser.
|
||||
@@ -59,7 +49,7 @@ public class CliParserTest {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
System.setOut(new PrintStream(baos));
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
instance.parse(args);
|
||||
|
||||
Assert.assertFalse(instance.isGetVersion());
|
||||
@@ -78,7 +68,7 @@ public class CliParserTest {
|
||||
String[] args = {"-help"};
|
||||
PrintStream out = System.out;
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
instance.parse(args);
|
||||
|
||||
Assert.assertFalse(instance.isGetVersion());
|
||||
@@ -96,7 +86,7 @@ public class CliParserTest {
|
||||
|
||||
String[] args = {"-version"};
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
instance.parse(args);
|
||||
Assert.assertTrue(instance.isGetVersion());
|
||||
Assert.assertFalse(instance.isGetHelp());
|
||||
@@ -114,7 +104,7 @@ public class CliParserTest {
|
||||
|
||||
String[] args = {"--failOnCVSS"};
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
try {
|
||||
instance.parse(args);
|
||||
} catch (ParseException ex) {
|
||||
@@ -135,7 +125,7 @@ public class CliParserTest {
|
||||
|
||||
String[] args = {"--failOnCVSS","bad"};
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
instance.parse(args);
|
||||
Assert.assertEquals("Default should be 11", 11, instance.getFailOnCVSS());
|
||||
Assert.assertFalse(instance.isGetVersion());
|
||||
@@ -153,7 +143,7 @@ public class CliParserTest {
|
||||
|
||||
String[] args = {"--failOnCVSS","6"};
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
instance.parse(args);
|
||||
Assert.assertEquals(6, instance.getFailOnCVSS());
|
||||
Assert.assertFalse(instance.isGetVersion());
|
||||
@@ -178,7 +168,7 @@ public class CliParserTest {
|
||||
System.setOut(new PrintStream(baos_out));
|
||||
System.setErr(new PrintStream(baos_err));
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
|
||||
try {
|
||||
instance.parse(args);
|
||||
@@ -200,7 +190,7 @@ public class CliParserTest {
|
||||
|
||||
String[] args = {"-scan"};
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
|
||||
try {
|
||||
instance.parse(args);
|
||||
@@ -223,7 +213,7 @@ public class CliParserTest {
|
||||
|
||||
String[] args = {"-scan", "jar.that.does.not.exist", "-app", "test"};
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
try {
|
||||
instance.parse(args);
|
||||
} catch (FileNotFoundException ex) {
|
||||
@@ -245,7 +235,7 @@ public class CliParserTest {
|
||||
File path = new File(this.getClass().getClassLoader().getResource("checkSumTest.file").toURI().getPath());
|
||||
String[] args = {"-scan", path.getCanonicalPath(), "-out", "./", "-app", "test"};
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
instance.parse(args);
|
||||
|
||||
Assert.assertEquals(path.getCanonicalPath(), instance.getScanFiles()[0]);
|
||||
@@ -267,7 +257,7 @@ public class CliParserTest {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
System.setOut(new PrintStream(baos));
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
instance.printVersionInfo();
|
||||
try {
|
||||
baos.flush();
|
||||
@@ -296,7 +286,7 @@ public class CliParserTest {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
System.setOut(new PrintStream(baos));
|
||||
|
||||
CliParser instance = new CliParser();
|
||||
CliParser instance = new CliParser(getSettings());
|
||||
String[] args = {"-h"};
|
||||
instance.parse(args);
|
||||
instance.printHelp();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
autoupdate=false
|
||||
|
||||
somethingmadeup=test
|
||||
analyzer.experimental.enabled=false
|
||||
analyzer.jar.enabled=true
|
||||
analyzer.archive.enabled=true
|
||||
|
||||
Reference in New Issue
Block a user