Пример #1
0
        public async Task Close()
        {
            _server
            .WhenForAnyArgs(x => x.Open())
            .Do(x => { _server.Connected += Raise.EventWith(new dotnet_sockets.EventArgs <bool>(true)); });
            _server
            .WhenForAnyArgs(x => x.Close())
            .Do(x => { _server.Disconnected += Raise.EventWith(new dotnet_sockets.EventArgs <bool>(false)); });

            _server.IsConnected.Returns(false, true);
            INATS nats = new NATS(_factory, _opts, _log);

            nats.ShouldNotBe(null);
            nats.Servers.ShouldBe(1);
            nats.Connected.ShouldBe(false);
            var c = await nats.Connect();

            c.ShouldBe(true);
            nats.Connected.ShouldBe(true);
            _server.Received(1).Connected    += Arg.Any <EventHandler <dotnet_sockets.EventArgs <bool> > >();
            _server.Received(1).Disconnected += Arg.Any <EventHandler <dotnet_sockets.EventArgs <bool> > >();

            nats.Close();

            _server.Received(1).Open();
            _server.Received(1).Send(Arg.Is <string>(cConnect));
            _server.Received(1).Close();
        }
Пример #2
0
        void run(CLIOptions opts)
        {
            ILog  log  = null;
            INATS nats = null;

            try
            {
                log = new dotnet_nats.log.Logger(opts.loglevel);
                IFactory f = new Factory(log);
                nats = new NATS(f, opts, log);
                var t = nats.Connect();
                t.Wait();
                if (t.Result)
                {
                    if (opts.mode.Equals("pub", StringComparison.InvariantCultureIgnoreCase))
                    {
                        publish(nats, opts.subject, opts.data, opts.count, log);
                    }
                    else if (opts.mode.Equals("sub", StringComparison.InvariantCultureIgnoreCase))
                    {
                        subscribe(nats, opts.subject, opts.count, log);
                    }
                    else
                    {
                        log.Fatal("Unknown mode supplied: {0}", opts.mode);
                    }
                }
                else
                {
                    throw new Exception("Failed to connect to server");
                }
            }
            catch (Exception ex)
            {
                if (log != null)
                {
                    log.Error("Error processing", ex);
                }
                //throw;
            }
            finally
            {
                if (nats != null)
                {
                    nats.Close();
                }
                nats = null;
            }
        }