public JsonRpcIntegrationServerTestBase(JsonRpcTestOptions testOptions) { TestOptions = testOptions; Disposable = new CompositeDisposable { testOptions.ClientLoggerFactory, testOptions.ServerLoggerFactory }; _cancellationTokenSource = new CancellationTokenSource(); if (!Debugger.IsAttached) { _cancellationTokenSource.CancelAfter(testOptions.CancellationTimeout); } Events = ClientEvents = new Settler(TestOptions, CancellationToken); }
public Settler(JsonRpcTestOptions options, CancellationToken cancellationToken, IScheduler?scheduler = null) { _options = options; _cancellationToken = cancellationToken; scheduler ??= Scheduler.Immediate; _scheduler = scheduler; _timeoutValue = Return(Unit.Default, _scheduler); var subject = new Subject <int>(); var data = subject; var connectable = data .StartWith(0) .Scan( 0, (acc, next) => { acc += next; return(acc); } ) .DistinctUntilChanged() .Select( z => { if (z > 0) { return(Never <Unit>()); // return Timer(_options.Timeout, _scheduler) // .Select(z => Unit.Default); } return(Timer(_options.WaitTime, _scheduler) .Select(_ => Unit.Default)); } ) .Replay(1, _scheduler); _connectable = connectable.Connect(); _settle = connectable .Select(o => o.Timeout(_options.Timeout, _scheduler)) .Switch(); _requester = subject.AsObserver(); }
public JsonRpcServerTestBase(JsonRpcTestOptions testOptions) : base(testOptions) { }
public static JsonRpcTestOptions WithAssemblies(this JsonRpcTestOptions options, IEnumerable <Assembly> assemblies) { options.Assemblies = options.Assemblies.Concat(assemblies).ToArray(); return(options); }
public static JsonRpcTestOptions WithAssemblies(this JsonRpcTestOptions options, params Assembly[] assemblies) { options.Assemblies = options.Assemblies.Concat(assemblies).ToArray(); return(options); }
public static JsonRpcTestOptions WithCancellationTimeout(this JsonRpcTestOptions options, TimeSpan cancellationTimeout) { options.CancellationTimeout = cancellationTimeout; return(options); }
public static JsonRpcTestOptions WithDefaultPipeOptions(this JsonRpcTestOptions options, PipeOptions pipeOptions) { options.DefaultPipeOptions = pipeOptions; return(options); }
public static JsonRpcTestOptions WithWaitTime(this JsonRpcTestOptions options, TimeSpan waitTime) { options.WaitTime = waitTime; return(options); }
public static JsonRpcTestOptions WithTimeout(this JsonRpcTestOptions options, TimeSpan timeout) { options.Timeout = timeout; return(options); }
public static JsonRpcTestOptions WithClientLoggerFactory(this JsonRpcTestOptions options, ILoggerFactory clientLoggerFactory) { options.ClientLoggerFactory = clientLoggerFactory; return(options); }
public static JsonRpcTestOptions WithServerLoggerFactory(this JsonRpcTestOptions options, ILoggerFactory serverLoggerFactory) { options.ServerLoggerFactory = serverLoggerFactory; return(options); }
public static JsonRpcTestOptions WithSettleTimeSpan(this JsonRpcTestOptions options, TimeSpan settleTimeSpan) { options.SettleTimeSpan = settleTimeSpan; return(options); }
public static JsonRpcTestOptions WithScheduler(this JsonRpcTestOptions options, IScheduler scheduler) { options.ClientScheduler = options.ServerScheduler = scheduler; return(options); }
public static JsonRpcTestOptions WithLoggerFactory(this JsonRpcTestOptions options, ILoggerFactory loggerFactory) { options.ClientLoggerFactory = options.ServerLoggerFactory = loggerFactory; return(options); }