blob: 33ec0742331fd091b294b7c7b46853caf8ca1a18 [file] [log] [blame] [edit]
// OCCukes OCCucumberRuntime+WireProtocol.h
//
// Copyright © 2012, 2013, The OCCukes Organisation. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the “Software”), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND, EITHER
// EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO
// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
// OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
//------------------------------------------------------------------------------
#import "OCCucumberRuntime.h"
extern NSString *const OCCucumberRuntimeUnhandledStepNotification;

extern NSString *const OCCucumberRuntimeUnhandledStepNameKey;

@interface OCCucumberRuntime(WireProtocol)
- (id)handleWirePacketWithObject:(id)object;
- (id)handleWirePacketWithArray:(NSArray *)array;
/**
* Finds out whether the wire server has a definition for a given step.
*
* When features have been parsed, Cucumber will send a "step_matches"
* message to ask the wire server if it can match a step name. This happens for
* each of the steps in each of the features.
*
* @result The wire server replies with an array of Step Match objects.
* Each Step Match hash element comprises the following key-value pairs.
* - An "id" string identifier for the step definition to be referenced later
* when it needs to be invoked. The identifier can be any string value and is
* simply used for wire server's own reference.
* - An "args" array for any argument values captured by the wire end's own
* regular expression (or other argument matching) process.
*/
- (id)handleStepMatchesWithHash:(NSDictionary *)hash;
/**
* Requests a snippet for an undefined step.
*/
- (id)handleSnippetTextWithHash:(NSDictionary *)hash;
/**
* Signals that Cucumber is about to execute a scenario.
*/
- (id)handleBeginScenario;
/**
* Signals that Cucumber has finished executing a scenario.
*/
- (id)handleEndScenario;
/**
* Asks for a step definition to be invoked.
*/
- (id)handleInvokeWithHash:(NSDictionary *)hash;
@end