Sha256: de80afccb615c72b090279fa56bbef6b94cf4830d5a65eb76cf1bb4069396957

Contents?: true

Size: 1.93 KB

Versions: 32

Compression:

Stored size: 1.93 KB

Contents

require "spec_helper"
require "tempfile"

RSpec.describe Files::File, :with_test_folder do
  describe "#read" do
    before do
      Files::File.open(test_folder.join("read.txt").to_s, 'w', options) do |f|
        f.write("contents")
      end
    end

    it "returns the body of the file" do
      file = Files::File.find(test_folder.join("read.txt").to_s, {}, options)
      expect(file.read).to eq("contents")
    end
  end

  describe "#read_io" do
    before do
      Files::File.open(test_folder.join("read.txt").to_s, 'w', options) do |f|
        f.write("contents")
      end
    end

    it "returns an IO Object" do
      file = Files::File.find(test_folder.join("read.txt").to_s, {}, options)
      expect(file.read_io).to be_a_kind_of(IO)
      expect(file.read_io.read).to eq("contents")
      expect(file.read_io.size).to eq("contents".length)
    end
  end

  describe "#write" do
    it "can take string" do
      Files::File.open(test_folder.join("write-as-string.txt").to_s, 'w', options) do |f|
        f.write("I am a string")
      end

      file = Files::File.find(test_folder.join("write-as-string.txt").to_s, {}, options)
      expect(file.read).to eq("I am a string")
    end

    it "can take IO object" do
      Files::File.open(test_folder.join("write-as-io.txt").to_s, 'w', options) do |f|
        f.write(StringIO.new("I am a string via IO"))
      end

      file = Files::File.find(test_folder.join("write-as-io.txt").to_s, {}, options)
      expect(file.read).to eq("I am a string via IO")
    end

    it "can take an IO without #size" do
      temp_file = Tempfile.new("testing_io.txt")

      temp_file.write("I am a string via IO")
      temp_file.rewind
      fd = IO.sysopen(temp_file.path)
      io = IO.new(fd)

      file = Files::File.open(test_folder.join("write-as-io.txt").to_s, 'w', options) do |f|
        f.write(io)
      end

      expect(file.read).to eq("I am a string via IO")
      temp_file.close
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
files.com-1.0.97 spec/models/file_spec.rb
files.com-1.0.96 spec/models/file_spec.rb
files.com-1.0.95 spec/models/file_spec.rb
files.com-1.0.94 spec/models/file_spec.rb
files.com-1.0.93 spec/models/file_spec.rb
files.com-1.0.92 spec/models/file_spec.rb
files.com-1.0.91 spec/models/file_spec.rb
files.com-1.0.90 spec/models/file_spec.rb
files.com-1.0.89 spec/models/file_spec.rb
files.com-1.0.88 spec/models/file_spec.rb
files.com-1.0.87 spec/models/file_spec.rb
files.com-1.0.86 spec/models/file_spec.rb
files.com-1.0.85 spec/models/file_spec.rb
files.com-1.0.84 spec/models/file_spec.rb
files.com-1.0.83 spec/models/file_spec.rb
files.com-1.0.82 spec/models/file_spec.rb
files.com-1.0.81 spec/models/file_spec.rb
files.com-1.0.80 spec/models/file_spec.rb
files.com-1.0.79 spec/models/file_spec.rb
files.com-1.0.78 spec/models/file_spec.rb