Files
react-native/scripts/cocoapods/__tests__/test_utils/FileMock.rb
T
Riccardo Cipolleschi 8fe2b591c7 Move LocalPodspecPatch to dedicated file (#34025)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/34025

This diff moves the monkeypatch LocalPodspecPatch to a dedicated ruby file.
It also adds test for that

## Changelog
[iOS][Changed] - Move LocalPodspecPatch to dedicated file

Reviewed By: cortinico

Differential Revision: D37069361

fbshipit-source-id: 28fddb197484f45aa20ccac516c874e79448e999
2022-06-27 01:19:36 -07:00

133 lines
3.1 KiB
Ruby
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
class File
@@is_testing = false
@@exist_invocation_params = []
@@mocked_existing_files = []
@@delete_invocation_count = 0
@@deleted_files = []
@@open_files_with_mode = {}
@@open_invocation_count = 0
@@open_files = []
@@files_to_read = {}
attr_reader :collected_write
attr_reader :fsync_invocation_count
def initialize()
@collected_write = []
@fsync_invocation_count = 0
end
# Monkey patched exists? method.
# It is used also by the test runner, so it can't start monkey patched
# To use this, invoke the `is_testing` method before starting your test.
# Remember to invoke `reset` after the test.
def self.exist?(path)
if !@@is_testing
return exists?(path)
end
@@exist_invocation_params.push(path)
return @@mocked_existing_files.include?(path)
end
def self.delete(path)
if !@@is_testing
delete(path)
return
end
@@delete_invocation_count += 1
@@deleted_files.push(path)
end
def self.delete_invocation_count
return @@delete_invocation_count
end
def self.deleted_files
return @@deleted_files
end
# Getter for the `exist_invocation_params` to check that the exist method
# is invoked the right number of times with the right parameters
def self.exist_invocation_params()
return @@exist_invocation_params
end
# Set the list of files the test must return as existing
def self.mocked_existing_files(files)
@@mocked_existing_files = files
end
# Turn on the mocking features of the File mock
def self.enable_testing_mode!()
@@is_testing = true
end
def self.open(path, mode, &block)
@@open_files_with_mode[path] = mode
@@open_invocation_count += 1
file = File.new()
@@open_files.push(file)
yield(file)
end
def self.open_files_with_mode
return @@open_files_with_mode
end
def self.open_invocation_count
return @@open_invocation_count
end
def self.open_files
return @@open_files
end
def self.file_invocation_params
return @@file_invocation_params
end
def write(text)
@collected_write.push(text.to_s)
end
def fsync()
@fsync_invocation_count += 1
end
def self.files_to_read(files)
@@files_to_read = files
end
def self.read(filepath)
return @@files_to_read[filepath]
end
# Resets all the settings for the File mock
def self.reset()
@@delete_invocation_count = 0
@@deleted_files = []
@@open_files = []
@@open_files_with_mode = {}
@@open_invocation_count = 0
@@mocked_existing_files = []
@@is_testing = false
@@file_invocation_params = []
@@exist_invocation_params = []
@@files_to_read = {}
end
end