1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.analyzer;
19
20 import mockit.Mock;
21 import mockit.MockUp;
22 import org.junit.After;
23 import org.junit.Before;
24 import org.junit.Test;
25 import org.owasp.dependencycheck.BaseDBTestCase;
26 import org.owasp.dependencycheck.BaseTest;
27 import org.owasp.dependencycheck.Engine;
28 import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
29 import org.owasp.dependencycheck.dependency.Dependency;
30 import org.owasp.dependencycheck.exception.InitializationException;
31
32 import java.io.File;
33 import java.security.MessageDigest;
34 import java.security.NoSuchAlgorithmException;
35
36 import static org.junit.Assert.assertEquals;
37 import static org.junit.Assert.assertFalse;
38 import static org.junit.Assert.assertTrue;
39
40
41
42
43
44
45 public class ComposerLockAnalyzerTest extends BaseDBTestCase {
46
47
48
49
50 ComposerLockAnalyzer analyzer;
51
52
53
54
55
56
57 @Override
58 @Before
59 public void setUp() throws Exception {
60 super.setUp();
61 analyzer = new ComposerLockAnalyzer();
62 analyzer.setFilesMatched(true);
63 analyzer.initialize();
64 }
65
66
67
68
69
70
71 @After
72 public void tearDown() throws Exception {
73 analyzer.close();
74 analyzer = null;
75 }
76
77
78
79
80 @Test
81 public void testGetName() {
82 assertEquals("Composer.lock analyzer", analyzer.getName());
83 }
84
85
86
87
88 @Test
89 public void testSupportsFiles() {
90 assertTrue(analyzer.accept(new File("composer.lock")));
91 }
92
93
94
95
96
97
98 @Test
99 public void testAnalyzePackageJson() throws Exception {
100 final Engine engine = new Engine();
101 final Dependency result = new Dependency(BaseTest.getResourceAsFile(this,
102 "composer.lock"));
103 analyzer.analyze(result, engine);
104 }
105
106
107 @Test(expected = InitializationException.class)
108 public void analyzerIsDisabledInCaseOfMissingMessageDigest() throws InitializationException {
109 new MockUp<MessageDigest>() {
110 @Mock
111 MessageDigest getInstance(String ignore) throws NoSuchAlgorithmException {
112 throw new NoSuchAlgorithmException();
113 }
114 };
115
116 analyzer = new ComposerLockAnalyzer();
117 analyzer.setFilesMatched(true);
118 assertTrue(analyzer.isEnabled());
119 analyzer.initialize();
120
121 assertFalse(analyzer.isEnabled());
122 }
123 }