blob: 5cbdea9bdf4f938f6889c330f1e6f8d486dee5b7 [file] [log] [blame]
Jens Geyer3e6be732025-06-04 22:31:55 +02001// Licensed to the Apache Software Foundation(ASF) under one
2// or more contributor license agreements.See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership.The ASF licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License. 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,
12// software distributed under the License is distributed on an
13// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14// KIND, either express or implied. See the License for the
15// specific language governing permissions and limitations
16// under the License.
17
18using KellermanSoftware.CompareNetObjects;
19using System;
20using System.Collections.Generic;
21using System.IO;
22using System.Linq;
23using System.Text;
24using System.Threading.Tasks;
25using Thrift.Protocol;
26using Thrift.Transport;
27using Thrift.Transport.Client;
28
29namespace Thrift.IntegrationTests.Protocols
30{
31 public class TestBase
32 {
33 protected readonly CompareLogic _compareLogic = new();
34 protected static readonly TConfiguration Configuration = new();
35
36
37 protected record struct ProtocolTransportStack(Stream Stream, TTransport Transport, TProtocol Protocol);
38
39 protected static ProtocolTransportStack GetProtocolInstance(Type protocolType)
40 {
41 var memoryStream = new MemoryStream();
42 var streamClientTransport = new TStreamTransport(memoryStream, memoryStream, Configuration);
43 if (Activator.CreateInstance(protocolType, streamClientTransport) is TProtocol protocol)
44 return new ProtocolTransportStack(memoryStream, streamClientTransport, protocol);
45 throw new Exception("Unexpected");
46 }
47 }
48}