1 /* 2 * This file is part of dependency-check-core. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 * 16 * Copyright (c) 2017 Jeremy Long. All Rights Reserved. 17 */ 18 package org.owasp.dependencycheck.analyzer; 19 20 import org.junit.Test; 21 import static org.junit.Assert.*; 22 import org.owasp.dependencycheck.BaseTest; 23 import org.owasp.dependencycheck.dependency.Confidence; 24 import org.owasp.dependencycheck.dependency.Dependency; 25 import org.owasp.dependencycheck.dependency.EvidenceType; 26 import org.owasp.dependencycheck.utils.Settings; 27 28 /** 29 * 30 * @author jerem 31 */ 32 public class VersionFilterAnalyzerTest extends BaseTest { 33 34 /** 35 * Test of getName method, of class VersionFilterAnalyzer. 36 */ 37 @Test testGetName()38 public void testGetName() { 39 VersionFilterAnalyzer instance = new VersionFilterAnalyzer(); 40 String expResult = "Version Filter Analyzer"; 41 String result = instance.getName(); 42 assertEquals(expResult, result); 43 } 44 45 /** 46 * Test of getAnalysisPhase method, of class VersionFilterAnalyzer. 47 */ 48 @Test testGetAnalysisPhase()49 public void testGetAnalysisPhase() { 50 VersionFilterAnalyzer instance = new VersionFilterAnalyzer(); 51 instance.initialize(getSettings()); 52 AnalysisPhase expResult = AnalysisPhase.POST_INFORMATION_COLLECTION; 53 AnalysisPhase result = instance.getAnalysisPhase(); 54 assertEquals(expResult, result); 55 } 56 57 /** 58 * Test of getAnalyzerEnabledSettingKey method, of class 59 * VersionFilterAnalyzer. 60 */ 61 @Test testGetAnalyzerEnabledSettingKey()62 public void testGetAnalyzerEnabledSettingKey() { 63 VersionFilterAnalyzer instance = new VersionFilterAnalyzer(); 64 instance.initialize(getSettings()); 65 String expResult = Settings.KEYS.ANALYZER_VERSION_FILTER_ENABLED; 66 String result = instance.getAnalyzerEnabledSettingKey(); 67 assertEquals(expResult, result); 68 } 69 70 /** 71 * Test of analyzeDependency method, of class VersionFilterAnalyzer. 72 */ 73 @Test testAnalyzeDependency()74 public void testAnalyzeDependency() throws Exception { 75 Dependency dependency = new Dependency(); 76 77 dependency.addEvidence(EvidenceType.VERSION, "util", "version", "33.3", Confidence.HIGHEST); 78 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 79 dependency.addEvidence(EvidenceType.VERSION, "other", "Implementation-Version", "1.2.3", Confidence.HIGHEST); 80 81 VersionFilterAnalyzer instance = new VersionFilterAnalyzer(); 82 instance.initialize(getSettings()); 83 84 instance.analyzeDependency(dependency, null); 85 assertEquals(3, dependency.getEvidence(EvidenceType.VERSION).size()); 86 87 dependency.addEvidence(EvidenceType.VERSION, "pom", "version", "1.2.3", Confidence.HIGHEST); 88 89 instance.analyzeDependency(dependency, null); 90 assertEquals(4, dependency.getEvidence(EvidenceType.VERSION).size()); 91 92 dependency.addEvidence(EvidenceType.VERSION, "file", "version", "1.2.3", Confidence.HIGHEST); 93 instance.analyzeDependency(dependency, null); 94 assertEquals(2, dependency.getEvidence(EvidenceType.VERSION).size()); 95 96 dependency.addEvidence(EvidenceType.VERSION, "Manifest", "Implementation-Version", "1.2.3", Confidence.HIGHEST); 97 instance.analyzeDependency(dependency, null); 98 assertEquals(3, dependency.getEvidence(EvidenceType.VERSION).size()); 99 100 dependency.addEvidence(EvidenceType.VERSION, "nexus", "version", "1.2.3", Confidence.HIGHEST); 101 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 102 instance.analyzeDependency(dependency, null); 103 assertEquals(4, dependency.getEvidence(EvidenceType.VERSION).size()); 104 105 dependency.addEvidence(EvidenceType.VERSION, "central", "version", "1.2.3", Confidence.HIGHEST); 106 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 107 instance.analyzeDependency(dependency, null); 108 assertEquals(5, dependency.getEvidence(EvidenceType.VERSION).size()); 109 } 110 111 /** 112 * Test of analyzeDependency method, of class VersionFilterAnalyzer. 113 */ 114 @Test testAnalyzeDependencyFilePom()115 public void testAnalyzeDependencyFilePom() throws Exception { 116 Dependency dependency = new Dependency(); 117 118 dependency.addEvidence(EvidenceType.VERSION, "util", "version", "33.3", Confidence.HIGHEST); 119 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 120 dependency.addEvidence(EvidenceType.VERSION, "other", "Implementation-Version", "1.2.3", Confidence.HIGHEST); 121 122 VersionFilterAnalyzer instance = new VersionFilterAnalyzer(); 123 instance.initialize(getSettings()); 124 125 instance.analyzeDependency(dependency, null); 126 assertEquals(3, dependency.getEvidence(EvidenceType.VERSION).size()); 127 128 dependency.addEvidence(EvidenceType.VERSION, "pom", "version", "1.2.3", Confidence.HIGHEST); 129 130 instance.analyzeDependency(dependency, null); 131 assertEquals(4, dependency.getEvidence(EvidenceType.VERSION).size()); 132 133 dependency.addEvidence(EvidenceType.VERSION, "file", "version", "1.2.3", Confidence.HIGHEST); 134 instance.analyzeDependency(dependency, null); 135 assertEquals(2, dependency.getEvidence(EvidenceType.VERSION).size()); 136 137 dependency.addEvidence(EvidenceType.VERSION, "nexus", "version", "1.2.3", Confidence.HIGHEST); 138 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 139 instance.analyzeDependency(dependency, null); 140 assertEquals(3, dependency.getEvidence(EvidenceType.VERSION).size()); 141 142 dependency.addEvidence(EvidenceType.VERSION, "central", "version", "1.2.3", Confidence.HIGHEST); 143 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 144 instance.analyzeDependency(dependency, null); 145 assertEquals(4, dependency.getEvidence(EvidenceType.VERSION).size()); 146 } 147 148 /** 149 * Test of analyzeDependency method, of class VersionFilterAnalyzer. 150 */ 151 @Test testAnalyzeDependencyFileManifest()152 public void testAnalyzeDependencyFileManifest() throws Exception { 153 Dependency dependency = new Dependency(); 154 155 dependency.addEvidence(EvidenceType.VERSION, "util", "version", "33.3", Confidence.HIGHEST); 156 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 157 dependency.addEvidence(EvidenceType.VERSION, "other", "Implementation-Version", "1.2.3", Confidence.HIGHEST); 158 159 VersionFilterAnalyzer instance = new VersionFilterAnalyzer(); 160 instance.initialize(getSettings()); 161 162 instance.analyzeDependency(dependency, null); 163 assertEquals(3, dependency.getEvidence(EvidenceType.VERSION).size()); 164 165 dependency.addEvidence(EvidenceType.VERSION, "Manifest", "Implementation-Version", "1.2.3", Confidence.HIGHEST); 166 167 instance.analyzeDependency(dependency, null); 168 assertEquals(4, dependency.getEvidence(EvidenceType.VERSION).size()); 169 170 dependency.addEvidence(EvidenceType.VERSION, "file", "version", "1.2.3", Confidence.HIGHEST); 171 instance.analyzeDependency(dependency, null); 172 assertEquals(2, dependency.getEvidence(EvidenceType.VERSION).size()); 173 } 174 175 /** 176 * Test of analyzeDependency method, of class VersionFilterAnalyzer. 177 */ 178 @Test testAnalyzeDependencyPomManifest()179 public void testAnalyzeDependencyPomManifest() throws Exception { 180 Dependency dependency = new Dependency(); 181 182 dependency.addEvidence(EvidenceType.VERSION, "util", "version", "33.3", Confidence.HIGHEST); 183 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 184 dependency.addEvidence(EvidenceType.VERSION, "other", "Implementation-Version", "1.2.3", Confidence.HIGHEST); 185 186 VersionFilterAnalyzer instance = new VersionFilterAnalyzer(); 187 instance.initialize(getSettings()); 188 189 instance.analyzeDependency(dependency, null); 190 assertEquals(3, dependency.getEvidence(EvidenceType.VERSION).size()); 191 192 dependency.addEvidence(EvidenceType.VERSION, "pom", "version", "1.2.3", Confidence.HIGHEST); 193 194 instance.analyzeDependency(dependency, null); 195 assertEquals(4, dependency.getEvidence(EvidenceType.VERSION).size()); 196 197 dependency.addEvidence(EvidenceType.VERSION, "Manifest", "Implementation-Version", "1.2.3", Confidence.HIGHEST); 198 instance.analyzeDependency(dependency, null); 199 assertEquals(2, dependency.getEvidence(EvidenceType.VERSION).size()); 200 201 dependency.addEvidence(EvidenceType.VERSION, "nexus", "version", "1.2.3", Confidence.HIGHEST); 202 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 203 instance.analyzeDependency(dependency, null); 204 assertEquals(3, dependency.getEvidence(EvidenceType.VERSION).size()); 205 206 dependency.addEvidence(EvidenceType.VERSION, "central", "version", "1.2.3", Confidence.HIGHEST); 207 dependency.addEvidence(EvidenceType.VERSION, "other", "version", "alpha", Confidence.HIGHEST); 208 instance.analyzeDependency(dependency, null); 209 assertEquals(4, dependency.getEvidence(EvidenceType.VERSION).size()); 210 } 211 } 212