IOOverrides class Null safety

Facilities for overriding various APIs of dart:io with mock implementations.

This abstract base class should be extended with overrides for the operations needed to construct mocks. The implementations in this base class default to the actual dart:io implementation. For example:

class MyDirectory implements Directory {
  ...
  // An implementation of the Directory interface
  ...
}

void main() {
  IOOverrides.runZoned(() {
    ...
    // Operations will use MyDirectory instead of dart:io's Directory
    // implementation whenever Directory is used.
    ...
  }, createDirectory: (String path) => new MyDirectory(path));
}

Constructors

IOOverrides()

Properties

hashCode int
The hash code for this object. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited

Methods

createDirectory(String path) Directory
Creates a new Directory object for the given path. [...]
createFile(String path) File
Creates a new File object for the given path. [...]
Returns a new Link object for the given path. [...]
fseGetType(String path, bool followLinks) Future<FileSystemEntityType>
Asynchronously returns the FileSystemEntityType for path. [...]
fseGetTypeSync(String path, bool followLinks) FileSystemEntityType
Returns the FileSystemEntityType for path. [...]
fseIdentical(String path1, String path2) Future<bool>
Asynchronously returns true if path1 and path2 are paths to the same file system object. [...]
fseIdenticalSync(String path1, String path2) bool
Returns true if path1 and path2 are paths to the same file system object. [...]
fsWatch(String path, int events, bool recursive) Stream<FileSystemEvent>
Returns a Stream of FileSystemEvents. [...]
fsWatchIsSupported() bool
Returns true when FileSystemEntity.watch is supported. [...]
getCurrentDirectory() Directory
Returns the current working directory. [...]
getSystemTempDirectory() Directory
Returns the system temporary directory. [...]
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
serverSocketBind(dynamic address, int port, {int backlog = 0, bool v6Only = false, bool shared = false}) Future<ServerSocket>
Asynchronously returns a ServerSocket that connects to the given address and port when successful. [...]
setCurrentDirectory(String path) → void
Sets the current working directory to be path. [...]
socketConnect(dynamic host, int port, {dynamic sourceAddress, Duration? timeout}) Future<Socket>
Asynchronously returns a Socket connected to the given host and port. [...]
socketStartConnect(dynamic host, int port, {dynamic sourceAddress}) Future<ConnectionTask<Socket>>
Asynchronously returns a ConnectionTask that connects to the given host and port when successful. [...]
stat(String path) Future<FileStat>
Asynchronously returns FileStat information for path. [...]
statSync(String path) FileStat
Returns FileStat information for path. [...]
toString() String
A string representation of this object. [...]
inherited

Operators

operator ==(Object other) bool
The equality operator. [...]
inherited

Static Properties

current IOOverrides?
read-only
global IOOverrides?
The IOOverrides to use in the root Zone. [...]
write-only

Static Methods

runWithIOOverrides<R>(R body(), IOOverrides overrides) → R
Runs body in a fresh Zone using the overrides found in overrides. [...]
runZoned<R>(R body(), {Directory createDirectory(String)?, Directory getCurrentDirectory()?, void setCurrentDirectory(String)?, Directory getSystemTempDirectory()?, File createFile(String)?, Future<FileStat> stat(String)?, FileStat statSync(String)?, Future<bool> fseIdentical(String, String)?, bool fseIdenticalSync(String, String)?, Future<FileSystemEntityType> fseGetType(String, bool)?, FileSystemEntityType fseGetTypeSync(String, bool)?, Stream<FileSystemEvent> fsWatch(String, int, bool)?, bool fsWatchIsSupported()?, Link createLink(String)?, Future<Socket> socketConnect(dynamic, int, {dynamic sourceAddress, Duration? timeout})?, Future<ConnectionTask<Socket>> socketStartConnect(dynamic, int, {dynamic sourceAddress})?, Future<ServerSocket> serverSocketBind(dynamic, int, {int backlog, bool shared, bool v6Only})?}) → R
Runs body in a fresh Zone using the provided overrides. [...]