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
stderr Stdout
The standard output stream of errors written by this program.
read-only
stdin Stdin
The standard input stream of data read by this program.
read-only
stdout Stdout
The standard output stream of data written by this program.
read-only

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, int sourcePort = 0, Duration? timeout}) Future<Socket>
Asynchronously returns a Socket connected to the given host and port.
socketStartConnect(dynamic host, int port, {dynamic sourceAddress, int sourcePort = 0}) 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, int sourcePort, Duration? timeout})?, Future<ConnectionTask<Socket>> socketStartConnect(dynamic, int, {dynamic sourceAddress, int sourcePort})?, Future<ServerSocket> serverSocketBind(dynamic, int, {int backlog, bool shared, bool v6Only})?, Stdin stdin()?, Stdout stdout()?, Stdout stderr()?}) → R
Runs body in a fresh Zone using the provided overrides.