description

# IOOverrides class abstract base

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.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited
stderr → Stdout
  The standard output stream of errors written by this program.
  no setter
stdin → Stdin
  The standard input stream of data read by this program.
  no setter
stdout → Stdout
  The standard output stream of data written by this program.
  no setter

## 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`.
createLink(String path) → Link
  Returns a new Link object for the given `path`.
exit(int code) → Never
  Exit the Dart VM process immediately with the given exit code.
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 nonexistent 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?
  no setter
global ← IOOverrides?
  The IOOverrides to use in the root Zone.
  no getter

## 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()?, Never exit(int)?}) → R
  Runs `body` in a fresh Zone using the provided overrides.