-
Notifications
You must be signed in to change notification settings - Fork 2.6k
/
Copy pathdroplet_helper.rb
102 lines (79 loc) · 3.7 KB
/
droplet_helper.rb
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# frozen_string_literal: true
# Cloud Foundry Java Buildpack
# Copyright 2013-2020 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
require 'spec_helper'
require 'application_helper'
require 'logging_helper'
require 'java_buildpack/component/additional_libraries'
require 'java_buildpack/component/droplet'
require 'java_buildpack/component/environment_variables'
require 'java_buildpack/component/extension_directories'
require 'java_buildpack/component/immutable_java_home'
require 'java_buildpack/component/java_opts'
require 'java_buildpack/component/mutable_java_home'
require 'java_buildpack/component/networking'
require 'java_buildpack/component/root_libraries'
require 'java_buildpack/component/security_providers'
require 'java_buildpack/util/snake_case'
require 'java_buildpack/util/tokenized_version'
require 'pathname'
# rubocop: disable RSpec/MultipleMemoizedHelpers
shared_context 'with droplet help' do
include_context 'with application help'
include_context 'with logging help'
let(:additional_libraries) { JavaBuildpack::Component::AdditionalLibraries.new app_dir }
let(:additional_libs_directory) { droplet.root + '.additional_libs' }
let(:component_id) { described_class.to_s.split('::').last.snake_case }
let(:droplet) do
JavaBuildpack::Component::Droplet.new(additional_libraries, component_id, environment_variables,
extension_directories, java_home, java_opts, networking, app_dir,
root_libraries, security_providers)
end
let(:extension_directories) { JavaBuildpack::Component::ExtensionDirectories.new app_dir }
let(:root_libraries) { JavaBuildpack::Component::RootLibraries.new app_dir }
let(:root_libs_directory) { droplet.root + '.root_libs' }
let(:sandbox) { droplet.sandbox }
let(:java_home) do
JavaBuildpack::Component::ImmutableJavaHome.new java_home_delegate, app_dir
end
let(:java_home_delegate) do
delegate = JavaBuildpack::Component::MutableJavaHome.new
delegate.root = app_dir + '.test-java-home'
delegate.version = JavaBuildpack::Util::TokenizedVersion.new('1.7.0_55')
delegate
end
let(:environment_variables) do
java_opts = JavaBuildpack::Component::EnvironmentVariables.new app_dir
java_opts.concat %w[test-var-2 test-var-1]
java_opts
end
let(:java_opts) do
java_opts = JavaBuildpack::Component::JavaOpts.new app_dir
java_opts.concat %w[test-opt-2 test-opt-1]
java_opts
end
let(:networking) { JavaBuildpack::Component::Networking.new }
let(:security_providers) { JavaBuildpack::Component::SecurityProviders.new }
before do
FileUtils.cp_r 'spec/fixtures/additional_libs/.', additional_libs_directory
additional_libs_directory.children.each { |child| additional_libraries << child }
extension_directories << (sandbox + 'test-extension-directory-1')
extension_directories << (sandbox + 'test-extension-directory-2')
FileUtils.cp_r 'spec/fixtures/root_libs/.', root_libs_directory
root_libs_directory.children.each { |child| root_libraries << child }
security_providers.concat %w[test-security-provider-1 test-security-provider-2]
end
end
# rubocop: enable RSpec/MultipleMemoizedHelpers