// OCHamcrest by Jon Reid, https://qualitycoding.org/ // Copyright 2019 hamcrest.org. See LICENSE.txt #import NS_ASSUME_NONNULL_BEGIN /*! * @abstract Matches if any entry in a dictionary satisfies the nested pair of matchers. */ @interface HCIsDictionaryContaining : HCBaseMatcher - (instancetype)initWithKeyMatcher:(id )keyMatcher valueMatcher:(id )valueMatcher NS_DESIGNATED_INITIALIZER; - (instancetype)init NS_UNAVAILABLE; @end FOUNDATION_EXPORT id HC_hasEntry(id keyMatcher, id valueMatcher); #ifndef HC_DISABLE_SHORT_SYNTAX /*! * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains * at least one entry whose key satisfies the specified keyMatcher and whose * value satisfies the specified valueMatcher. * @param keyMatcher The matcher to satisfy for the key, or an expected value for equalTo matching. * @param valueMatcher The matcher to satisfy for the value, or an expected value for equalTo matching. * @discussion Any argument that is not a matcher is implicitly wrapped in an equalTo * matcher to check for equality. * * Examples
*
assertThat(myDictionary, hasEntry(equalTo(\@"foo"), equalTo(\@"bar")))
*
assertThat(myDictionary, hasEntry(\@"foo", \@"bar"))
* * Name Clash
* In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym * HC_hasEntry instead. */ static inline id hasEntry(id keyMatcher, id valueMatcher) { return HC_hasEntry(keyMatcher, valueMatcher); } #endif NS_ASSUME_NONNULL_END