1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.data.composer;
19
20 import org.junit.Before;
21 import org.junit.Test;
22
23 import java.io.ByteArrayInputStream;
24 import java.io.InputStream;
25 import java.nio.charset.Charset;
26
27 import static org.junit.Assert.*;
28 import org.owasp.dependencycheck.BaseTest;
29
30
31
32
33 public class ComposerLockParserTest extends BaseTest {
34
35 private InputStream inputStream;
36
37 @Before
38 public void setUp() {
39 inputStream = this.getClass().getClassLoader().getResourceAsStream("composer.lock");
40 }
41
42 @Test
43 public void testValidComposerLock() {
44 ComposerLockParser clp = new ComposerLockParser(inputStream);
45 clp.process();
46 assertEquals(30, clp.getDependencies().size());
47 assertTrue(clp.getDependencies().contains(new ComposerDependency("symfony", "translation", "2.7.3")));
48 }
49
50 @Test(expected = ComposerException.class)
51 public void testNotJSON() throws Exception {
52 String input = "NOT VALID JSON";
53 ComposerLockParser clp = new ComposerLockParser(new ByteArrayInputStream(input.getBytes(Charset.defaultCharset())));
54 clp.process();
55 }
56
57 @Test(expected = ComposerException.class)
58 public void testNotComposer() throws Exception {
59 String input = "[\"ham\",\"eggs\"]";
60 ComposerLockParser clp = new ComposerLockParser(new ByteArrayInputStream(input.getBytes(Charset.defaultCharset())));
61 clp.process();
62 }
63
64 @Test(expected = ComposerException.class)
65 public void testNotPackagesArray() throws Exception {
66 String input = "{\"packages\":\"eleventy\"}";
67 ComposerLockParser clp = new ComposerLockParser(new ByteArrayInputStream(input.getBytes(Charset.defaultCharset())));
68 clp.process();
69 }
70 }