summaryrefslogtreecommitdiff
path: root/spec/unit/core
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-05-12 11:58:05 -0600
committermo khan <mo.khan@gmail.com>2020-05-12 11:58:05 -0600
commitb0ccf1bda6e192051ad498451e20531aa5a29367 (patch)
tree9d32c3efd5062642a1cf5ad2617fe8ed866a3f1a /spec/unit/core
parente5b60f31deeb6c1dd1ddf773ddd743f5fdf6f696 (diff)
Extract index scan to work towards more efficient seeks
Diffstat (limited to 'spec/unit/core')
-rw-r--r--spec/unit/core/index_file_spec.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/unit/core/index_file_spec.rb b/spec/unit/core/index_file_spec.rb
new file mode 100644
index 0000000..8d82b15
--- /dev/null
+++ b/spec/unit/core/index_file_spec.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+RSpec.describe Spandx::Core::IndexFile do
+ subject { described_class.new(data_file) }
+
+ let(:data_file) { Spandx::Core::DataFile.new(tmp_file.path) }
+ let(:tmp_file) { Tempfile.new }
+
+ after do
+ tmp_file.unlink
+ end
+
+ describe '#scan' do
+ before do
+ data_file.insert('activemodel', '6.0.2.2', ['Apache-2.0'])
+ data_file.insert('spandx', '0.1.0', ['MIT'])
+ data_file.insert('zlib', '1.1.0', ['0BSD'])
+
+ subject.update!
+ end
+
+ specify do
+ subject.scan do |x|
+ expect(x.row(0)).to eql("\"activemodel\",\"6.0.2.2\",\"Apache-2.0\"\n")
+ end
+ end
+
+ specify do
+ subject.scan do |x|
+ expect(x.row(1)).to eql("\"spandx\",\"0.1.0\",\"MIT\"\n")
+ end
+ end
+
+ specify do
+ subject.scan do |x|
+ expect(x.row(2)).to eql("\"zlib\",\"1.1.0\",\"0BSD\"\n")
+ end
+ end
+ end
+end