1 /* 2 * 3 * Copyright 2019 gRPC authors. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 #import <XCTest/XCTest.h> 20 21 #import <GRPCClient/GRPCTypes.h> 22 23 /** 24 * This is an abstract class that needs to be subclassed. See |+host|. 25 */ 26 @interface TestBase : XCTestCase 27 /** 28 * The test suite to run, checking if the current XCTestCase instance is the base class. 29 * If so, run no tests (disabled). Otherwise, proceed to normal execution. 30 */ 31 @property(class, readonly) XCTestSuite *defaultTestSuite; 32 33 /** 34 * Host to send the RPCs to. The base implementation returns nil, which would make all tests to 35 * fail. 36 * Override in a subclass to perform these tests against a specific address. 37 */ 38 + (NSString *)host; 39 40 /** 41 * Bytes of overhead of test proto responses due to encoding. This is used to exercise the behavior 42 * when responses are just above or below the max response size. For some reason, the local and 43 * remote servers enconde responses with different overhead (?), so this is defined per-subclass. 44 */ 45 - (int32_t)encodingOverhead; 46 47 /* 48 * The transport to be used. The base implementation returns NULL. Subclasses should override to 49 * appropriate settings. 50 */ 51 + (GRPCTransportID)transport; 52 53 /** 54 * The root certificates to be used. The base implementation returns nil. Subclasses should override 55 * to appropriate settings. 56 */ 57 + (NSString *)PEMRootCertificates; 58 59 /** 60 * The host name to be used for TLS verification in the tests. 61 */ 62 + (NSString *)hostNameOverride; 63 64 /** 65 * Indication of whether the test is connecting to a remote server. 66 */ 67 + (BOOL)isRemoteTest; 68 69 @end 70