From 89c007328f5e98daa12f2aa77d7c717509602e95 Mon Sep 17 00:00:00 2001 From: Icebob Date: Tue, 27 Feb 2018 20:21:36 +0100 Subject: [PATCH] add TCP transporter to resolver. --- src/service-broker.js | 2 ++ test/unit/service-broker.spec.js | 39 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/service-broker.js b/src/service-broker.js index 15a516a8c..4cdc8747d 100644 --- a/src/service-broker.js +++ b/src/service-broker.js @@ -241,6 +241,8 @@ class ServiceBroker { TransporterClass = Transporters.Kafka; else if (opt.startsWith("stan://")) TransporterClass = Transporters.STAN; + else if (opt.startsWith("tcp://")) + TransporterClass = Transporters.TCP; if (TransporterClass) return new TransporterClass(opt); diff --git a/test/unit/service-broker.spec.js b/test/unit/service-broker.spec.js index 3a51f9409..e6253bfb8 100644 --- a/test/unit/service-broker.spec.js +++ b/test/unit/service-broker.spec.js @@ -440,6 +440,45 @@ describe("Test option resolvers", () => { "url": "stan://localhost:4222" }); }); + + it("should resolve TcpTransporter from connection string", () => { + let trans = broker._resolveTransporter("tcp://192.168.0.100:6000"); + expect(trans).toBeInstanceOf(Transporters.TCP); + expect(trans.opts.urls).toBe("tcp://192.168.0.100:6000"); + }); + + it("should resolve TcpTransporter from string", () => { + let trans = broker._resolveTransporter("TCP"); + expect(trans).toBeInstanceOf(Transporters.TCP); + }); + + it("should resolve TcpTransporter from obj without type", () => { + let options = { + port: 1234, + udpPeriod: 5, + udpBroadcast: true, + udpBindAddress: "192.168.0.100" + }; + let trans = broker._resolveTransporter({ type: "TCP", options }); + expect(trans).toBeInstanceOf(Transporters.TCP); + expect(trans.opts).toEqual({ + "gossipPeriod": 2, + "maxConnections": 32, + "maxPacketSize": 1048576, + "port": 1234, + "udpBindAddress": "192.168.0.100", + "udpBroadcast": true, + "udpDiscovery": true, + "udpMaxDiscovery": 0, + "udpMulticast": "239.0.0.0", + "udpMulticastTTL": 1, + "udpPeriod": 5, + "udpPort": 4445, + "udpReuseAddr": true, + "urls": null, + "useHostname": true + }); + }); }); describe("Test _resolveCacher", () => {