#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

#define CString2NSString( str ) ( str != NULL ) ? [NSString stringWithUTF8String:str] : [NSString stringWithUTF8String:""]

typedef void (^OMAdInspectorCompletionHandler)(NSError *_Nullable error);

@interface OMTestSuite : NSObject

+ (void)presentWithAppKey:(NSString*)appKey onViewController:(UIViewController*)controller;

+ (void)presentAdInspectorFromViewController:(nonnull UIViewController *)viewController
                           completionHandler:
                               (nullable OMAdInspectorCompletionHandler)completionHandler;
@end



#pragma mark  API
    
void showTestSuite(const char* appKey)
{
    Class testSuiteClass = NSClassFromString(@"OMTestSuite");
    if (testSuiteClass && [testSuiteClass respondsToSelector:@selector(presentWithAppKey:onViewController:)]) {
        [testSuiteClass presentWithAppKey:CString2NSString(appKey) onViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
    }
}

void showInspector()
{
    Class testSuiteClass = NSClassFromString(@"OMTestSuite");
    if (testSuiteClass && [testSuiteClass respondsToSelector:@selector(presentAdInspectorFromViewController:completionHandler:)]) {
        [testSuiteClass presentAdInspectorFromViewController:[UIApplication sharedApplication].keyWindow.rootViewController completionHandler:nil];
    }
}
