public void Test_00__native <T>(T data)
            where T : unmanaged
        {
            DataStream from = DataStream.FromUnmanaged(data);
            string     b64  = from.ToBase64();
            string     hex  = from.ToHexString();

            byte[] arr = from.ToBytes();

            T t1 = DataStream.FromBytes(arr).ToUnmanaged <T>();
            T t2 = DataStream.FromBase64(b64).ToUnmanaged <T>();
            T t3 = DataStream.FromHex(hex).ToUnmanaged <T>();

            Assert.AreEqual(data, t1);
            Assert.AreEqual(data, t2);
            Assert.AreEqual(data, t3);
        }
예제 #2
0
        public void StreamsCanBeSentToListening()
        {
            using (var octopus = new HalibutRuntime(services, Certificates.Octopus))
                using (var tentacleListening = new HalibutRuntime(services, Certificates.TentacleListening))
                {
                    var tentaclePort = tentacleListening.Listen();
                    tentacleListening.Trust(Certificates.OctopusPublicThumbprint);

                    var data = new byte[1024 * 1024 + 15];
                    new Random().NextBytes(data);

                    var echo = octopus.CreateClient <IEchoService>("https://localhost:" + tentaclePort, Certificates.TentacleListeningPublicThumbprint);

                    for (var i = 0; i < 100; i++)
                    {
                        var count = echo.CountBytes(DataStream.FromBytes(data));
                        Assert.That(count, Is.EqualTo(1024 * 1024 + 15));
                    }
                }
        }
예제 #3
0
        public void StreamsCanBeSentToPolling()
        {
            using (var octopus = new HalibutRuntime(services, Certificates.Octopus))
                using (var tentaclePolling = new HalibutRuntime(services, Certificates.TentaclePolling))
                {
                    var octopusPort = octopus.Listen();
                    octopus.Trust(Certificates.TentaclePollingPublicThumbprint);

                    tentaclePolling.Poll(new Uri("poll://SQ-TENTAPOLL"), new ServiceEndPoint(new Uri("https://localhost:" + octopusPort), Certificates.OctopusPublicThumbprint));

                    var echo = octopus.CreateClient <IEchoService>("poll://SQ-TENTAPOLL", Certificates.TentaclePollingPublicThumbprint);

                    var data = new byte[1024 * 1024 + 15];
                    new Random().NextBytes(data);

                    for (var i = 0; i < 100; i++)
                    {
                        var count = echo.CountBytes(DataStream.FromBytes(data));
                        count.Should().Be(1024 * 1024 + 15);
                    }
                }
        }
예제 #4
0
 public override string ToString() => $"{Occurrence}x {Codepoint}: {DataStream.FromBytes(Sequence).ToHexString()}";