summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/thrift/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/jaegertracing/thrift/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolTests.cs')
-rw-r--r--src/jaegertracing/thrift/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolTests.cs67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/jaegertracing/thrift/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolTests.cs b/src/jaegertracing/thrift/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolTests.cs
new file mode 100644
index 000000000..970ce7ece
--- /dev/null
+++ b/src/jaegertracing/thrift/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolTests.cs
@@ -0,0 +1,67 @@
+// Licensed to the Apache Software Foundation(ASF) under one
+// or more contributor license agreements.See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using NSubstitute;
+using Thrift.Protocol;
+using Thrift.Protocol.Entities;
+using Thrift.Transport;
+using Thrift.Transport.Client;
+
+namespace Thrift.Tests.Protocols
+{
+ // ReSharper disable once InconsistentNaming
+ [TestClass]
+ public class TJSONProtocolTests
+ {
+ [TestMethod]
+ public void TJSONProtocol_Can_Create_Instance_Test()
+ {
+ var httpClientTransport = Substitute.For<THttpTransport>(new Uri("http://localhost"), null, null);
+
+ var result = new TJSONProtocolWrapper(httpClientTransport);
+
+ Assert.IsNotNull(result);
+ Assert.IsNotNull(result.WrappedContext);
+ Assert.IsNotNull(result.WrappedReader);
+ Assert.IsNotNull(result.Transport);
+ Assert.IsTrue(result.WrappedRecursionDepth == 0);
+ Assert.IsTrue(result.WrappedRecursionLimit == TProtocol.DefaultRecursionDepth);
+
+ Assert.IsTrue(result.Transport.Equals(httpClientTransport));
+ Assert.IsTrue(result.WrappedContext.GetType().Name.Equals("JSONBaseContext", StringComparison.OrdinalIgnoreCase));
+ Assert.IsTrue(result.WrappedReader.GetType().Name.Equals("LookaheadReader", StringComparison.OrdinalIgnoreCase));
+ }
+
+ private class TJSONProtocolWrapper : TJsonProtocol
+ {
+ public TJSONProtocolWrapper(TTransport trans) : base(trans)
+ {
+ }
+
+ public object WrappedContext => Context;
+ public object WrappedReader => Reader;
+ public int WrappedRecursionDepth => RecursionDepth;
+ public int WrappedRecursionLimit => RecursionLimit;
+ }
+ }
+}