예제 #1
0
        public async void TestFireUdpFromJava()
        {
            // TODO find a way to check whether Java side received the ff ping
            // setup Java server and get it's PeerAddress
            _tcs = new TaskCompletionSource <PeerAddress>();
            ThreadPool.QueueUserWorkItem(delegate
            {
                JarRunner.Run("JavaPingReceiver-start", DataReceived);
            });
            PeerAddress server = await _tcs.Task;

            // ping & test
            Peer           sender = null;
            ChannelCreator cc     = null;

            try
            {
                // setup .NET sender
                sender = new PeerBuilder(new Number160("0x9876")).
                         SetP2PId(55).
                         SetPorts(2424).
                         Start();

                cc = await sender.ConnectionBean.Reservation.CreateAsync(1, 0);

                var handshake       = new PingRpc(sender.PeerBean, sender.ConnectionBean);
                var task            = handshake.FireUdpAsync(server, cc, new DefaultConnectionConfiguration());
                var responseMessage = await task;

                Assert.IsTrue(task.IsCompleted && !task.IsFaulted);
                Assert.IsTrue(responseMessage == null);
            }
            finally
            {
                if (cc != null)
                {
                    cc.ShutdownAsync().Wait();
                }
                if (sender != null)
                {
                    sender.ShutdownAsync().Wait();
                }
                JarRunner.WriteToProcess("JavaPingReceiver-stop");
            }
        }
예제 #2
0
        public void TestDecodeBytes()
        {
            var bytes = JarRunner.RequestJavaBytes();

            var buf = AlternativeCompositeByteBuf.CompBuffer();

            buf.WriteBytes(bytes.ToSByteArray());

            // Java byte is signed
            var byteArray = new sbyte[256];

            buf.ReadBytes(byteArray);

            for (int i = 0, b = sbyte.MinValue; i <= sbyte.MaxValue; i++, b++) // -128 ... 127
            {
                Assert.IsTrue(b == byteArray[i]);
            }
        }
예제 #3
0
        public IPlantUmlRenderer CreateRenderer(PlantUmlSettings settings)
        {
            switch (settings.RenderingMode)
            {
            case RenderingMode.Remote:

                UrlFormatMap urlFormatMap = new UrlFormatMap(settings.RemoteUrl);
                return(new RemotePlantUmlRenderer(urlFormatMap));

            case RenderingMode.Local:

                JarRunner            jarRunner       = CreateJarRunner(settings);
                LocalCommandProvider commandProvider = new LocalCommandProvider(settings.LocalGraphvizDotPath);
                return(new LocalPlantUmlRenderer(jarRunner, commandProvider));

            default:
                throw new ArgumentException("invalid rendering mode", nameof(settings.RenderingMode));
            }
        }
예제 #4
0
        public void TestEncodeBytes()
        {
            AlternativeCompositeByteBuf buffer = AlternativeCompositeByteBuf.CompBuffer();

            // Java byte is signed
            sbyte[] byteArray = new sbyte[256];
            for (int i = 0, b = sbyte.MinValue; b <= sbyte.MaxValue; i++, b++) // -128 ... 127
            {
                byteArray[i] = (sbyte)b;
            }

            buffer.WriteBytes(byteArray);

            var bytes = InteropUtil.ExtractBytes(buffer);

            bool interopResult = JarRunner.WriteBytesAndTestInterop(bytes);

            Assert.IsTrue(interopResult);
        }
예제 #5
0
        public void TestEncodeInt()
        {
            AlternativeCompositeByteBuf buffer = AlternativeCompositeByteBuf.CompBuffer();

            buffer.WriteInt(int.MinValue);  //-2147483648
            buffer.WriteInt(-256);
            buffer.WriteInt(-255);
            buffer.WriteInt(-128);
            buffer.WriteInt(-127);
            buffer.WriteInt(-1);
            buffer.WriteInt(0);
            buffer.WriteInt(1);
            buffer.WriteInt(127);
            buffer.WriteInt(128);
            buffer.WriteInt(255);
            buffer.WriteInt(256);
            buffer.WriteInt(int.MaxValue);  // 2147483647

            var bytes = InteropUtil.ExtractBytes(buffer);

            bool interopResult = JarRunner.WriteBytesAndTestInterop(bytes);

            Assert.IsTrue(interopResult);
        }
예제 #6
0
        public void TestDecodeLong()
        {
            var bytes = JarRunner.RequestJavaBytes();

            var buf = AlternativeCompositeByteBuf.CompBuffer();

            buf.WriteBytes(bytes.ToSByteArray());

            long val1  = buf.ReadLong();
            long val2  = buf.ReadLong();
            long val3  = buf.ReadLong();
            long val4  = buf.ReadLong();
            long val5  = buf.ReadLong();
            long val6  = buf.ReadLong();
            long val7  = buf.ReadLong();
            long val8  = buf.ReadLong();
            long val9  = buf.ReadLong();
            long val10 = buf.ReadLong();
            long val11 = buf.ReadLong();
            long val12 = buf.ReadLong();
            long val13 = buf.ReadLong();

            Assert.IsTrue(val1 == long.MinValue);
            Assert.IsTrue(val2 == -256);
            Assert.IsTrue(val3 == -255);
            Assert.IsTrue(val4 == -128);
            Assert.IsTrue(val5 == -127);
            Assert.IsTrue(val6 == -1);
            Assert.IsTrue(val7 == 0);
            Assert.IsTrue(val8 == 1);
            Assert.IsTrue(val9 == 127);
            Assert.IsTrue(val10 == 128);
            Assert.IsTrue(val11 == 255);
            Assert.IsTrue(val12 == 256);
            Assert.IsTrue(val13 == long.MaxValue);
        }
예제 #7
0
        public void TestEncodeLong()
        {
            AlternativeCompositeByteBuf buffer = AlternativeCompositeByteBuf.CompBuffer();

            buffer.WriteLong(long.MinValue);  //-923372036854775808
            buffer.WriteLong(-256);
            buffer.WriteLong(-255);
            buffer.WriteLong(-128);
            buffer.WriteLong(-127);
            buffer.WriteLong(-1);
            buffer.WriteLong(0);
            buffer.WriteLong(1);
            buffer.WriteLong(127);
            buffer.WriteLong(128);
            buffer.WriteLong(255);
            buffer.WriteLong(256);
            buffer.WriteLong(long.MaxValue);  // 923372036854775807

            var bytes = InteropUtil.ExtractBytes(buffer);

            bool interopResult = JarRunner.WriteBytesAndTestInterop(bytes);

            Assert.IsTrue(interopResult);
        }
예제 #8
0
 public LocalPlantUmlRenderer(JarRunner jarRunner, LocalCommandProvider commandProvider)
 {
     this.jarRunner       = jarRunner;
     this.commandProvider = commandProvider;
 }
예제 #9
0
 public LocalPlantUmlRenderer(JarRunner jarRunner, LocalCommandProvider commandProvider, RenderUrlCalculator renderUrlCalculator)
 {
     this.jarRunner           = jarRunner;
     this.commandProvider     = commandProvider;
     this.renderUrlCalculator = renderUrlCalculator;
 }
 public RemotePlantUmlRenderer(JarRunner jarRunner, UrlFormatMap urlFormatMap)
 {
     this.jarRunner    = jarRunner;
     this.urlFormatMap = urlFormatMap;
 }