public async void RequestData() { Action <IObserver <Value> > ev; try { var data = await streamReader.ReadLineAsync(); var value = FaunaClient.FromJson(data); ev = observer => observer.OnNext(value); if (value.Get(TYPE) == "error") { FaunaException ex = ConstructStreamingException(value); ev = observer => observer.OnError(ex); } } catch (Exception ex) { FaunaException fex = ConstructStreamingException(ex); ev = observer => observer.OnError(fex); } foreach (var observer in observers.ToList()) { ev(observer); } }
static void AssertFailures(FaunaException ex, string code, string description, IResolveConstraint fields) { Assert.That(ex.Errors[0].Failures, Has.Count.EqualTo(1)); Assert.AreEqual(code, ex.Errors[0].Failures[0].Code); Assert.AreEqual(description, ex.Errors[0].Failures[0].Description); Assert.That(ex.Errors[0].Failures[0].Field, fields); }
void AssertException(FaunaException exception, string code, string description, IReadOnlyList <string> position = null) { Assert.AreEqual(1, exception.Errors.Count()); var error = exception.Errors.First(); Assert.AreEqual(code, error.Code); Assert.AreEqual(description, error.Description); if (position != null) { Assert.True(position.SequenceEqual(error.Position)); } }
static void AssertPosition(FaunaException ex, IResolveConstraint positions) { Assert.That(ex.Errors[0].Position, positions); }
static void AssertEmptyFailures(FaunaException ex) { Assert.That(ex.Errors[0].Failures, Is.Empty); }
static void AssertErrors(FaunaException ex, string code, string description) { Assert.That(ex.Errors, Has.Count.EqualTo(1)); Assert.AreEqual(code, ex.Errors[0].Code); Assert.AreEqual(description, ex.Errors[0].Description); }