blob: 6b470da363d436ef761cdaa5526c90466e210a9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
require 'openssl'
RSpec.describe 'gemnasium-maven' do
['8', '11', '14'].each do |java_version|
context "when scanning a java #{java_version} project with packages from a custom source" do
subject do
docker.build(tag: docker_image)
return {} unless docker.run(image: docker_image, project_path: project_path, env: env)
DependencyScanningReport.new(project_path: project_path)
end
let(:docker) { Docker.new(pwd: Pathname.pwd.join('src/gemnasium-maven')) }
let(:project_path) { project.path }
let(:docker_image) { 'gemnasium-maven:latest' }
let(:env) { { 'ADDITIONAL_CA_CERT_BUNDLE' => x509, 'DS_JAVA_VERSION' => java_version } }
let(:project) { Project.new }
let(:x509) do
rsa_key = OpenSSL::PKey::RSA.new(4096)
certificate = OpenSSL::X509::Certificate.new
certificate.subject = certificate.issuer = OpenSSL::X509::Name.parse("/C=/ST=/L=/O=/OU=/CN=")
certificate.not_before = Time.now.to_i
certificate.not_after = Time.now.to_i + 600
certificate.public_key = rsa_key.public_key
certificate.serial = 0x01
certificate.version = 2
certificate.sign(rsa_key, OpenSSL::Digest::SHA256.new)
certificate.to_pem
end
around(:example) do |example|
project.mount(dir: fixture_file('java/maven/custom-tls'))
example.run
project.cleanup
end
specify do
expect(subject.to_h['dependency_files'].count).to eql(1)
expect(subject.to_h['dependency_files'][0]['dependencies'].count).to eql(1)
expect(subject.to_h['dependency_files'][0]['dependencies'][0]['package']['name']).to eql('com.fasterxml.jackson.core/jackson-core')
expect(subject.to_h['dependency_files'][0]['dependencies'][0]['version']).to eql('2.10.0')
end
end
end
end
|