View Javadoc
1   package org.owasp.dependencycheck;
2   
3   import mockit.Expectations;
4   import mockit.Mocked;
5   import mockit.Verifications;
6   import org.junit.Test;
7   import org.owasp.dependencycheck.analyzer.FileTypeAnalyzer;
8   import org.owasp.dependencycheck.analyzer.HintAnalyzer;
9   import org.owasp.dependencycheck.dependency.Dependency;
10  
11  import java.io.File;
12  
13  import static org.junit.Assert.assertFalse;
14  import static org.junit.Assert.assertTrue;
15  
16  public class AnalysisTaskTest {
17  
18      @Mocked
19      FileTypeAnalyzer fileTypeAnalyzer;
20  
21      @Mocked
22      Dependency dependency;
23  
24      @Mocked
25      Engine engine;
26  
27  
28      @Test
29      public void shouldAnalyzeReturnsTrueForNonFileTypeAnalyzers() {
30          AnalysisTask instance = new AnalysisTask(new HintAnalyzer(), null, null, null);
31          boolean shouldAnalyze = instance.shouldAnalyze();
32          assertTrue(shouldAnalyze);
33      }
34  
35      @Test
36      public void shouldAnalyzeReturnsTrueIfTheFileTypeAnalyzersAcceptsTheDependency() {
37          final File dependencyFile = new File("");
38          new Expectations() {{
39              dependency.getActualFile();
40              result = dependencyFile;
41  
42              fileTypeAnalyzer.accept(dependencyFile);
43              result = true;
44          }};
45  
46          AnalysisTask analysisTask = new AnalysisTask(fileTypeAnalyzer, dependency, null, null);
47  
48          boolean shouldAnalyze = analysisTask.shouldAnalyze();
49          assertTrue(shouldAnalyze);
50      }
51  
52      @Test
53      public void shouldAnalyzeReturnsFalseIfTheFileTypeAnalyzerDoesNotAcceptTheDependency() {
54          final File dependencyFile = new File("");
55          new Expectations() {{
56              dependency.getActualFile();
57              result = dependencyFile;
58  
59              fileTypeAnalyzer.accept(dependencyFile);
60              result = false;
61          }};
62  
63          AnalysisTask analysisTask = new AnalysisTask(fileTypeAnalyzer, dependency, null, null);
64  
65          boolean shouldAnalyze = analysisTask.shouldAnalyze();
66          assertFalse(shouldAnalyze);
67      }
68  
69      @Test
70      public void taskAnalyzes() throws Exception {
71          final AnalysisTask analysisTask = new AnalysisTask(fileTypeAnalyzer, dependency, engine, null);
72          new Expectations(analysisTask) {{
73              analysisTask.shouldAnalyze();
74              result = true;
75          }};
76  
77          analysisTask.call();
78  
79          new Verifications() {{
80              fileTypeAnalyzer.analyze(dependency, engine);
81              times = 1;
82          }};
83      }
84  
85      @Test
86      public void taskDoesNothingIfItShouldNotAnalyze() throws Exception {
87          final AnalysisTask analysisTask = new AnalysisTask(fileTypeAnalyzer, dependency, engine, null);
88          new Expectations(analysisTask) {{
89              analysisTask.shouldAnalyze();
90              result = false;
91          }};
92  
93          analysisTask.call();
94  
95          new Verifications() {{
96              fileTypeAnalyzer.analyze(dependency, engine);
97              times = 0;
98          }};
99      }
100 }