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(); }
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; } }