xref: /aosp_15_r20/external/grpc-grpc/src/objective-c/tests/UnitTests/ChannelPoolTest.m (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker/*
2*cc02d7e2SAndroid Build Coastguard Worker *
3*cc02d7e2SAndroid Build Coastguard Worker * Copyright 2018 gRPC authors.
4*cc02d7e2SAndroid Build Coastguard Worker *
5*cc02d7e2SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
6*cc02d7e2SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
7*cc02d7e2SAndroid Build Coastguard Worker * You may obtain a copy of the License at
8*cc02d7e2SAndroid Build Coastguard Worker *
9*cc02d7e2SAndroid Build Coastguard Worker *     http://www.apache.org/licenses/LICENSE-2.0
10*cc02d7e2SAndroid Build Coastguard Worker *
11*cc02d7e2SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
12*cc02d7e2SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
13*cc02d7e2SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*cc02d7e2SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
15*cc02d7e2SAndroid Build Coastguard Worker * limitations under the License.
16*cc02d7e2SAndroid Build Coastguard Worker *
17*cc02d7e2SAndroid Build Coastguard Worker */
18*cc02d7e2SAndroid Build Coastguard Worker
19*cc02d7e2SAndroid Build Coastguard Worker#import <XCTest/XCTest.h>
20*cc02d7e2SAndroid Build Coastguard Worker
21*cc02d7e2SAndroid Build Coastguard Worker#import "../../GRPCClient/private/GRPCCore/GRPCChannel.h"
22*cc02d7e2SAndroid Build Coastguard Worker#import "../../GRPCClient/private/GRPCCore/GRPCChannelPool+Test.h"
23*cc02d7e2SAndroid Build Coastguard Worker#import "../../GRPCClient/private/GRPCCore/GRPCCompletionQueue.h"
24*cc02d7e2SAndroid Build Coastguard Worker
25*cc02d7e2SAndroid Build Coastguard Worker#define TEST_TIMEOUT 32
26*cc02d7e2SAndroid Build Coastguard Worker
27*cc02d7e2SAndroid Build Coastguard Workerstatic NSString *kPhonyHost = @"phony.host";
28*cc02d7e2SAndroid Build Coastguard Workerstatic NSString *kPhonyHost2 = @"phony.host.2";
29*cc02d7e2SAndroid Build Coastguard Workerstatic NSString *kPhonyPath = @"/phony/path";
30*cc02d7e2SAndroid Build Coastguard Worker
31*cc02d7e2SAndroid Build Coastguard Worker@interface ChannelPoolTest : XCTestCase
32*cc02d7e2SAndroid Build Coastguard Worker
33*cc02d7e2SAndroid Build Coastguard Worker@end
34*cc02d7e2SAndroid Build Coastguard Worker
35*cc02d7e2SAndroid Build Coastguard Worker@implementation ChannelPoolTest
36*cc02d7e2SAndroid Build Coastguard Worker
37*cc02d7e2SAndroid Build Coastguard Worker+ (void)setUp {
38*cc02d7e2SAndroid Build Coastguard Worker  grpc_init();
39*cc02d7e2SAndroid Build Coastguard Worker}
40*cc02d7e2SAndroid Build Coastguard Worker
41*cc02d7e2SAndroid Build Coastguard Worker- (void)testCreateAndCacheChannel {
42*cc02d7e2SAndroid Build Coastguard Worker  GRPCChannelPool *pool = [[GRPCChannelPool alloc] initTestPool];
43*cc02d7e2SAndroid Build Coastguard Worker  GRPCCallOptions *options1 = [[GRPCCallOptions alloc] init];
44*cc02d7e2SAndroid Build Coastguard Worker  GRPCCallOptions *options2 = [options1 copy];
45*cc02d7e2SAndroid Build Coastguard Worker  GRPCMutableCallOptions *options3 = [options1 mutableCopy];
46*cc02d7e2SAndroid Build Coastguard Worker  options3.transportType = GRPCTransportTypeInsecure;
47*cc02d7e2SAndroid Build Coastguard Worker
48*cc02d7e2SAndroid Build Coastguard Worker  GRPCPooledChannel *channel1 = [pool channelWithHost:kPhonyHost callOptions:options1];
49*cc02d7e2SAndroid Build Coastguard Worker  GRPCPooledChannel *channel2 = [pool channelWithHost:kPhonyHost callOptions:options2];
50*cc02d7e2SAndroid Build Coastguard Worker  GRPCPooledChannel *channel3 = [pool channelWithHost:kPhonyHost callOptions:options3];
51*cc02d7e2SAndroid Build Coastguard Worker  GRPCPooledChannel *channel4 = [pool channelWithHost:kPhonyHost2 callOptions:options1];
52*cc02d7e2SAndroid Build Coastguard Worker
53*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertNotNil(channel1);
54*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertNotNil(channel2);
55*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertNotNil(channel3);
56*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertNotNil(channel4);
57*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertEqual(channel1, channel2);
58*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertNotEqual(channel1, channel3);
59*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertNotEqual(channel1, channel4);
60*cc02d7e2SAndroid Build Coastguard Worker  XCTAssertNotEqual(channel3, channel4);
61*cc02d7e2SAndroid Build Coastguard Worker}
62*cc02d7e2SAndroid Build Coastguard Worker
63*cc02d7e2SAndroid Build Coastguard Worker@end
64