Files
DefinitelyTyped/types/jshamcrest/index.d.ts
2017-03-24 14:27:52 -07:00

1145 lines
37 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Type definitions for JsHamcrest 0.7.0
// Project: https://github.com/danielfm/jshamcrest/
// Definitions by: David Harkness <https://github.com/dharkness>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/**
* Top-level module for the JsHamcrest matcher library.
*
* @author Daniel Martins
*/
declare namespace JsHamcrest {
/**
* Library version.
*/
export var version: string;
//
// Description
//
/**
* Defines the method for describing the object to a description.
*/
interface DescribeTo {
(description: Description): void;
}
/**
* Defines the method for describing a value to a description.
*/
interface DescribeValueTo {
(value: any, description: Description): void;
}
/**
* Defines a method for describing the object implementing this interface to a description.
*
* TODO Remove? Not actually declared by JsHamcrest, but useful for type-checking in Description methods
*/
export interface SelfDescribing {
describeTo: DescribeTo;
}
/**
* Builder for a textual description.
*/
export class Description {
/**
* Appends text to this description.
*
* @param text Text to append to this description
* @return {Description} Itself for method chaining
*/
append(text: any): Description;
/**
* Appends the description of a self describing object to this description.
*
* @param selfDescribingObject Any object that has a describeTo() function that accepts a JsHamcrest.Description object as argument
* @return {Description} Itself for method chaining
*/
appendDescriptionOf(selfDescribingObject: SelfDescribing): Description;
/**
* Appends the description of several self describing objects to this description.
*
* @param start Start string
* @param separator Separator string
* @param end End string
* @param list Array of self describing objects. These objects must have a describeTo() function that accepts a JsHamcrest.Description object as argument
* @return {Description} Itself for method chaining
*/
appendList(start: string, separator: string, end: string, list: any[]): Description;
/**
* Appends a JavaScript languages literal to this description.
*
* @param literal Literal to append to this description
* @return {Description} Itself for method chaining
*/
appendLiteral(literal: any): Description;
/**
* Appends an array of values to this description.
*
* @param start Start string
* @param separator Separator string
* @param end End string
* @param list Array of values to be described to this description
* @return {Description} Itself for method chaining
*/
appendValueList(start: string, separator: string, end: string, list: SelfDescribing[]): Description;
/**
* Gets the current content of this description.
*
* @return {string} Current content of this description
*/
get(): string;
}
//
// Matcher
//
/**
* Defines the method for testing the matcher against an actual value.
*/
interface Matches {
(value: any): boolean;
}
/**
* Defines the minimal interface for every matcher.
*
* FIXME Remove since isMatcher tests for SimpleMatcher :(
*/
export interface Matcher extends SelfDescribing {
matches: Matches;
describeValueTo: DescribeValueTo;
}
/**
* Defines the configurable methods for declaring a new matcher using JsHamcrest.SimpleMatcher.
*/
interface MatcherConfig {
matches: Matches;
describeTo: DescribeTo;
describeValueTo?: DescribeValueTo;
}
/**
* Defines a matcher that relies on the external functions provided by the caller in order to shape the current matching logic.
*/
export class SimpleMatcher implements Matcher {
matches: Matches;
describeTo: DescribeTo;
describeValueTo: DescribeValueTo;
constructor(config: MatcherConfig);
}
/**
* Defines a composite matcher, that is, a matcher that wraps several matchers into one.
*/
export class CombinableMatcher extends SimpleMatcher {
/**
* Wraps this matcher and the given matcher using JsHamcrest.Matchers.allOf().
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {CombinableMatcher} Instance of JsHamcrest.CombinableMatcher
*/
and(matcherOrValue: any): CombinableMatcher;
/**
* Wraps this matcher and the given matcher using JsHamcrest.Matchers.anyOf().
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {CombinableMatcher} Instance of JsHamcrest.CombinableMatcher
*/
or(matcherOrValue: any): CombinableMatcher;
}
//
// Helpers
//
/**
* Checks if the given object is a matcher or not.
*
* @param obj Object to check
* @return {boolean} True if the given object is a matcher; false otherwise
*/
export function isMatcher(obj: any): boolean;
/**
* Delegate function, useful when used to create a matcher that has a value-equalTo semantic.
*
* @param factory Creates a new matcher that delegates to the passed/wrapped matcherOrValue
* @return {function(*): Matcher} Wraps the value with equalTo before passing to factory
*/
export function EqualTo(factory: (matcher: Matcher) => Matcher): (matcherOrValue: any) => Matcher;
/**
* Provides the assertion, filtering, and currying methods.
*/
namespace Operators {
/**
* Defines the options accepted by assert().
*/
interface AssertOptions {
message?: any;
pass?: (description: string) => void;
fail?: (description: string) => void;
}
/**
* Fails if the actual value does not match the matcher.
*
* @param actual Value to test against the matcher
* @param matcherOrValue Applied to the value; wrapped with equalTo() if not a matcher
* @param options Provides message and pass/fail handlers
* @return {JsHamcrest.Description} Contains the message, actual value, matcher, and result
*/
export function assert(actual: any, matcherOrValue?: any, options?: AssertOptions): JsHamcrest.Description;
/**
* Returns those items of the array for which matcher matches.
*
* @param array The values to filter
* @param matcherOrValue Applied to each value
* @return {Array.<*>} Contains all values from array matched by the matcher in the original order
*/
export function filter(array: any[], matcherOrValue: any): any[];
/**
* Delegate function, useful when used along with raises() and raisesAnything().
*
* @param func Function to delegate to
* @param args Passed to func
* @return {function(): *} A function that calls func with args and returns its result
*/
export function callTo(func: (...args: any[]) => any, ...args: any[]): () => any;
}
/**
* Defines all of the built-in matchers grouped into five categories.
*/
namespace Matchers {
//
// Collection Matchers
//
/**
* The length of the actual value must be zero.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function empty(): JsHamcrest.SimpleMatcher;
/**
* The actual value should be an array and matcherOrValue must match all items.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function everyItem(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value should be an array and it must contain at least one value that matches matcherOrValue.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function hasItem(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value should be an array and matchersOrValues must match at least one item.
*
* @param matchersOrValues Instances of JsHamcrest.SimpleMatcher and/or values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function hasItems(...matchersOrValues: any[]): JsHamcrest.SimpleMatcher;
/**
* The length of the actual value must match matcherOrValue.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function hasSize(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The given array or arguments must contain the actual value.
*
* @param items Array or list of values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function isIn(...items: any[]): JsHamcrest.SimpleMatcher;
/**
* Alias to isIn() function.
*
* @param items Array or list of values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function oneOf(...items: any[]): JsHamcrest.SimpleMatcher;
//
// Core Matchers
//
/**
* All matchesOrValues must match the actual value. This matcher behaves pretty much like the JavaScript && (and) operator.
*
* @param matchersOrValues Instances of JsHamcrest.SimpleMatcher and/or values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function allOf(...matchersOrValues: any[]): JsHamcrest.SimpleMatcher;
/**
* At least one of the matchersOrValues should match the actual value. This matcher behaves pretty much like the JavaScript || (or) operator.
*
* @param matchersOrValues Instances of JsHamcrest.SimpleMatcher and/or values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function anyOf(...matchersOrValues: any[]): JsHamcrest.SimpleMatcher;
/**
* Useless always-match matcher.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function anything(): JsHamcrest.SimpleMatcher;
/**
* Combinable matcher where the actual value must match all the given matchers or values.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.CombinableMatcher} Instance of JsHamcrest.CombinableMatcher
*/
export function both(matcherOrValue: any): JsHamcrest.CombinableMatcher;
/**
* Combinable matcher where the actual value must match at least one of the given matchers or values.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.CombinableMatcher} Instance of JsHamcrest.CombinableMatcher
*/
export function either(matcherOrValue: any): JsHamcrest.CombinableMatcher;
/**
* The actual value must be equal to expected.
*
* @param expected Expected value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function equalTo(expected: any): JsHamcrest.SimpleMatcher;
/**
* Delegate-only matcher frequently used to improve readability.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function is(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value must be null or undefined.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function nil(): JsHamcrest.SimpleMatcher;
/**
* The actual value must not match matcherOrValue.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function not(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value is a function and, when invoked, it should throw an exception with the given name.
*
* @param exceptionName Name of the expected exception
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function raises(exceptionName: string): JsHamcrest.SimpleMatcher;
/**
* The actual value is a function and, when invoked, it should raise any exception.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function raisesAnything(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be the same as expected.
*
* @param expected Expected value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function sameAs(expected: any): JsHamcrest.SimpleMatcher;
/**
* Matches any truthy value (not undefined, null, false, 0, NaN, or "").
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function truth(): JsHamcrest.SimpleMatcher;
//
// Number Matchers
//
/**
* The actual number must be between the given range (inclusive).
*
* @param start Range start
* @return {JsHamcrest.BetweenBuilder} Builder object with an and(end) method, which returns a JsHamcrest.SimpleMatcher instance and thus should be called to finish the matcher creation
*/
export function between(start: any): JsHamcrest.BetweenBuilder;
/**
* The actual number must be close enough to expected, that is, the actual number is equal to a value within some range of acceptable error.
*
* @param expected Expected number
* @param [delta=0] Expected difference delta
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function closeTo(expected: number, delta?: number): JsHamcrest.SimpleMatcher;
/**
* The actual number must be divisible by divisor.
*
* @param divisor Divisor
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function divisibleBy(divisor: number): JsHamcrest.SimpleMatcher;
/**
* The actual number must be even.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function even(): JsHamcrest.SimpleMatcher;
/**
* The actual number must be greater than expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function greaterThan(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual number must be greater than or equal to expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function greaterThanOrEqualTo(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual number must be less than expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function lessThan(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual number must be less than or equal to expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function lessThanOrEqualTo(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual value must not be a number.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function notANumber(): JsHamcrest.SimpleMatcher;
/**
* The actual number must be odd.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function odd(): JsHamcrest.SimpleMatcher;
/**
* The actual number must be zero.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function zero(): JsHamcrest.SimpleMatcher;
//
// Object Matchers
//
/**
* The actual value must be a boolean.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function bool(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be a function.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function func(): JsHamcrest.SimpleMatcher;
/**
* The actual value has a function with the given name.
*
* @param functionName Function name
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function hasFunction(functionName: string): JsHamcrest.SimpleMatcher;
/**
* The actual value has an attribute with the given name.
*
* @param memberName Member name
* @param [matcherOrValue] Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function hasMember(memberName: string, matcherOrValue?: any): JsHamcrest.SimpleMatcher;
/**
* The actual value must be an instance of clazz.
*
* @param clazz Constructor function
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function instanceOf(clazz: new() => any): JsHamcrest.SimpleMatcher;
/**
* The actual value must be a number.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function number(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be an object.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function object(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be a string.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function string(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be of the given type.
*
* @param typeName Name of the type
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function typeOf(typeName: string): JsHamcrest.SimpleMatcher;
//
// Text Matchers
//
/**
* The actual string must have a substring equals to str.
*
* @param str Substring
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function containsString(str: string): JsHamcrest.SimpleMatcher;
/**
* The actual string must look like an e-mail address.
*
* Warning: This matcher is not fully compliant with RFC2822 due to its complexity.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function emailAddress(): JsHamcrest.SimpleMatcher;
/**
* The actual string must end with str.
*
* @param str Substring
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function endsWith(str: string): JsHamcrest.SimpleMatcher;
/**
* The actual string must be equal to str, ignoring case.
*
* @param str String
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function equalIgnoringCase(str: string): JsHamcrest.SimpleMatcher;
/**
* The actual string must match regex.
*
* @param regex String
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function matches(regex: RegExp): JsHamcrest.SimpleMatcher;
/**
* The actual string must start with str.
*
* @param str Substring
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
export function startsWith(str: string): JsHamcrest.SimpleMatcher;
}
/**
* Provides methods for exposing matchers and operators for several testing frameworks.
*/
namespace Integration {
/**
* Copies all members of the Matchers and Operators modules to target.
*
* Does not overwrite properties with the same name.
*
* @param target
*/
export function copyMembers(target: {}): void;
/**
* Copies all members of source to target.
*
* Does not overwrite properties with the same name.
*
* @param source
* @param target
*/
export function copyMembers(source: {}, target: {}): void;
/**
* Adds the members of the given object to JsHamcrest.Matchers namespace.
*
* @param source
*/
export function installMatchers(source: {}): void;
/**
* Adds the members of the given object to JsHamcrest.Operators namespace.
*
* @param source
*/
export function installOperators(source: {}): void;
//
// Testing Frameworks
//
/**
* Uses the web browser's alert() function to display the assertion results.
* Great for quick prototyping.
*/
export function WebBrowser(): void;
/**
* Uses Rhino's print() function to display the assertion results.
* Great for quick prototyping.
*/
export function Rhino(): void;
/**
* JsTestDriver integration.
*
* @param params Omit to copy members to global scope
*/
export function JsTestDriver(params?: { scope?: {} }): void;
/**
* NodeUnit (Node.js Unit Testing) integration.
*
* @param params Omit to copy members to "global"
*/
export function Nodeunit(params?: { scope?: {} }): void;
/**
* JsUnitTest integration.
*
* @param params Omit to copy members to "JsUnitTest.Unit.Testcase.prototype"
*/
export function JsUnitTest(params?: { scope?: {} }): void;
/**
* YUITest (Yahoo UI) integration.
*
* @param params Omit to copy members to global scope
*/
export function YUITest(params?: { scope?: {} }): void;
/**
* QUnit (JQuery) integration.
*
* @param params Omit to copy members to global scope
*/
export function QUnit(params?: { scope?: {} }): void;
/**
* jsUnity integration.
*
* @param params Omit to copy members to "jsUnity.env.defaultScope"
*/
export function jsUnity(params?: { scope?: {}; attachAssertions?: boolean }): void;
/**
* Screw.Unit integration.
*
* @param params Omit to copy members to "Screw.Matchers"
*/
export function screwunit(params?: { scope?: {} }): void;
/**
* Jasmine integration.
*
* @param params Omit to copy members to global scope
*/
export function jasmine(params?: { scope?: {} }): void;
}
//
// Builders
//
/**
* Used by the between() matcher to specify the ending value.
*/
export class BetweenBuilder {
and(end: any): SimpleMatcher;
}
}
//
// Functions that are copied by copyMembers() to the global scope are copy-n-pasted here.
//
// TODO There must be a better way to do this, and not every testing framework places them in the global scope.
//
//
// Assert
//
/**
* Fails if the actual value does not match the matcher.
*
* @param actual Value to test against the matcher
* @param matcher Applied to the value
* @param message Prepends the built description
* @return {JsHamcrest.Description} Contains the message, actual value, matcher, and result
*/
declare function assertThat(actual: any, matcher?: JsHamcrest.Matcher, message?: any): JsHamcrest.Description;
//
// Collection Matchers
//
/**
* The length of the actual value must be zero.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function empty(): JsHamcrest.SimpleMatcher;
/**
* The actual value should be an array and matcherOrValue must match all items.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function everyItem(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value should be an array and it must contain at least one value that matches matcherOrValue.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function hasItem(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value should be an array and matchersOrValues must match at least one item.
*
* @param matchersOrValues Instances of JsHamcrest.SimpleMatcher and/or values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function hasItems(...matchersOrValues: any[]): JsHamcrest.SimpleMatcher;
/**
* The length of the actual value must match matcherOrValue.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function hasSize(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The given array or arguments must contain the actual value.
*
* @param items Array or list of values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function isIn(...items: any[]): JsHamcrest.SimpleMatcher;
/**
* Alias to isIn() function.
*
* @param items Array or list of values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function oneOf(...items: any[]): JsHamcrest.SimpleMatcher;
//
// Core Matchers
//
/**
* All matchesOrValues must match the actual value. This matcher behaves pretty much like the JavaScript && (and) operator.
*
* @param matchersOrValues Instances of JsHamcrest.SimpleMatcher and/or values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function allOf(...matchersOrValues: any[]): JsHamcrest.SimpleMatcher;
/**
* At least one of the matchersOrValues should match the actual value. This matcher behaves pretty much like the JavaScript || (or) operator.
*
* @param matchersOrValues Instances of JsHamcrest.SimpleMatcher and/or values
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function anyOf(...matchersOrValues: any[]): JsHamcrest.SimpleMatcher;
/**
* Useless always-match matcher.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function anything(): JsHamcrest.SimpleMatcher;
/**
* Combinable matcher where the actual value must match all the given matchers or values.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.CombinableMatcher} Instance of JsHamcrest.CombinableMatcher
*/
declare function both(matcherOrValue: any): JsHamcrest.CombinableMatcher;
/**
* Combinable matcher where the actual value must match at least one of the given matchers or values.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.CombinableMatcher} Instance of JsHamcrest.CombinableMatcher
*/
declare function either(matcherOrValue: any): JsHamcrest.CombinableMatcher;
/**
* The actual value must be equal to expected.
*
* @param expected Expected value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function equalTo(expected: any): JsHamcrest.SimpleMatcher;
/**
* Delegate-only matcher frequently used to improve readability.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function is(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value must be null or undefined.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function nil(): JsHamcrest.SimpleMatcher;
/**
* The actual value must not match matcherOrValue.
*
* @param matcherOrValue Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function not(matcherOrValue: any): JsHamcrest.SimpleMatcher;
/**
* The actual value is a function and, when invoked, it should throw an exception with the given name.
*
* @param exceptionName Name of the expected exception
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function raises(exceptionName: string): JsHamcrest.SimpleMatcher;
/**
* The actual value is a function and, when invoked, it should raise any exception.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function raisesAnything(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be the same as expected.
*
* @param expected Expected value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function sameAs(expected: any): JsHamcrest.SimpleMatcher;
/**
* Matches any truthy value (not undefined, null, false, 0, NaN, or "").
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function truth(): JsHamcrest.SimpleMatcher;
//
// Number Matchers
//
/**
* The actual number must be between the given range (inclusive).
*
* @param start Range start
* @return {JsHamcrest.BetweenBuilder} Builder object with an and(end) method, which returns a JsHamcrest.SimpleMatcher instance and thus should be called to finish the matcher creation
*/
declare function between(start: any): JsHamcrest.BetweenBuilder;
/**
* The actual number must be close enough to expected, that is, the actual number is equal to a value within some range of acceptable error.
*
* @param expected Expected number
* @param [delta=0] Expected difference delta
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function closeTo(expected: number, delta?: number): JsHamcrest.SimpleMatcher;
/**
* The actual number must be divisible by divisor.
*
* @param divisor Divisor
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function divisibleBy(divisor: number): JsHamcrest.SimpleMatcher;
/**
* The actual number must be even.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function even(): JsHamcrest.SimpleMatcher;
/**
* The actual number must be greater than expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function greaterThan(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual number must be greater than or equal to expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function greaterThanOrEqualTo(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual number must be less than expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function lessThan(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual number must be less than or equal to expected.
*
* @param expected Expected number
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function lessThanOrEqualTo(expected: any): JsHamcrest.SimpleMatcher;
/**
* The actual value must not be a number.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function notANumber(): JsHamcrest.SimpleMatcher;
/**
* The actual number must be odd.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function odd(): JsHamcrest.SimpleMatcher;
/**
* The actual number must be zero.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function zero(): JsHamcrest.SimpleMatcher;
//
// Object Matchers
//
/**
* The actual value must be a boolean.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function bool(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be a function.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function func(): JsHamcrest.SimpleMatcher;
/**
* The actual value has a function with the given name.
*
* @param functionName Function name
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function hasFunction(functionName: string): JsHamcrest.SimpleMatcher;
/**
* The actual value has an attribute with the given name.
*
* @param memberName Member name
* @param [matcherOrValue] Instance of JsHamcrest.SimpleMatcher or a value
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function hasMember(memberName: string, matcherOrValue?: any): JsHamcrest.SimpleMatcher;
/**
* The actual value must be an instance of clazz.
*
* @param clazz Constructor function
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function instanceOf(clazz: new() => any): JsHamcrest.SimpleMatcher;
/**
* The actual value must be a number.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function number(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be an object.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function object(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be a string.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function string(): JsHamcrest.SimpleMatcher;
/**
* The actual value must be of the given type.
*
* @param typeName Name of the type
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function typeOf(typeName: string): JsHamcrest.SimpleMatcher;
//
// Text Matchers
//
/**
* The actual string must have a substring equals to str.
*
* @param str Substring
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function containsString(str: string): JsHamcrest.SimpleMatcher;
/**
* The actual string must look like an e-mail address.
*
* Warning: This matcher is not fully compliant with RFC2822 due to its complexity.
*
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function emailAddress(): JsHamcrest.SimpleMatcher;
/**
* The actual string must end with str.
*
* @param str Substring
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function endsWith(str: string): JsHamcrest.SimpleMatcher;
/**
* The actual string must be equal to str, ignoring case.
*
* @param str String
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function equalIgnoringCase(str: string): JsHamcrest.SimpleMatcher;
/**
* The actual string must match regex.
*
* @param regex String
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function matches(regex: RegExp): JsHamcrest.SimpleMatcher;
/**
* The actual string must start with str.
*
* @param str Substring
* @return {JsHamcrest.SimpleMatcher} Instance of JsHamcrest.SimpleMatcher
*/
declare function startsWith(str: string): JsHamcrest.SimpleMatcher;