public void IntegerGreaterOrEqualThanFilter() { IQbservable<StubMessage> qbservable = Observable.Range(18, 20).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable<StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=MessageId ge 23")); Assert.AreEqual(23, filteredQbservable.ToEnumerable().First().MessageId); }
public void IntegerDivisionEqualsFilter() { IQbservable<StubMessage> qbservable = Observable.Range(15, 3).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable<StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=(MessageId div 2) eq 8")); Assert.AreEqual(16, filteredQbservable.ToEnumerable().First().MessageId); }
public void EmptyFilterProducesUnfilteredObservable() { IQbservable<StubMessage> qbservable = Observable.Range(1, 10).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable<StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc")); Assert.AreEqual(1, filteredQbservable.ToEnumerable().First().MessageId); }
public void CastFilter() { IQbservable<StubMessage> qbservable = Observable.Range(1, 3).Select(i => new StubMessage { MessageId = i, ComplexProperty = new StubMessage.ComplexType() { Foo = i.ToString(CultureInfo.InvariantCulture) } }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable<StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=MessageId gt cast(3,'Edm.Int32')")); Assert.AreEqual(2, filteredQbservable.ToEnumerable().First().MessageId); }
public IObservable <TResult> GetEventStream <TSource, TResult>(EventQuery <TSource, TResult> query) { Uri = new QueryUriProvider().GetQueryUri(query); UriQueryDeserializer deserializer = new UriQueryDeserializer(); return(deserializer.Deserialize(((IObservable <TSource>)Source).AsQbservable(), Uri) as IQbservable <TResult>); }
public void IntegerLessThanFilter() { IQbservable <StubMessage> qbservable = new[] { 20, 19, 18, 17, 16 }.ToObservable().Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable <StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=MessageId lt 18")); Assert.AreEqual(17, filteredQbservable.ToEnumerable().First().MessageId); }
public void IntegerGreaterOrEqualThanFilter() { IQbservable <StubMessage> qbservable = Observable.Range(18, 20).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable <StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=MessageId ge 23")); Assert.AreEqual(23, filteredQbservable.ToEnumerable().First().MessageId); }
public void EmptyFilterProducesUnfilteredObservable() { IQbservable <StubMessage> qbservable = Observable.Range(1, 10).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable <StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc")); Assert.AreEqual(1, filteredQbservable.ToEnumerable().First().MessageId); }
public void SkipQueryParameterSkipsFirstNResultsReturned() { IQbservable <StubMessage> qbservable = Observable.Range(1, 15).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable <StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$skip=5")); Assert.AreEqual(6, filteredQbservable.ToEnumerable().First().MessageId); }
public void IntegerDivisionEqualsFilter() { IQbservable <StubMessage> qbservable = Observable.Range(15, 3).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable <StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=(MessageId div 2) eq 8")); Assert.AreEqual(16, filteredQbservable.ToEnumerable().First().MessageId); }
public void CastFilter() { IQbservable <StubMessage> qbservable = Observable.Range(1, 3).Select(i => new StubMessage { MessageId = i, ComplexProperty = new StubMessage.ComplexType() { Foo = i.ToString(CultureInfo.InvariantCulture) } }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable <StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=MessageId gt cast(3,'Edm.Int32')")); Assert.AreEqual(2, filteredQbservable.ToEnumerable().First().MessageId); }
public void IntegerLessOrEqualThanFilter() { IQbservable<StubMessage> qbservable = new[] { 20, 19, 18, 17, 16 }.ToObservable().Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable<StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$filter=MessageId le 18")); Assert.AreEqual(18, filteredQbservable.ToEnumerable().First().MessageId); }
public void TopQueryParameterLimitsResultsReturned() { IQbservable<StubMessage> qbservable = Observable.Range(1, 15).Select(i => new StubMessage { MessageId = i }).AsQbservable(); UriQueryDeserializer uriQueryDeserializer = new UriQueryDeserializer(); IQbservable<StubMessage> filteredQbservable = uriQueryDeserializer.Deserialize(qbservable, new Uri("http://foo.bar/qux.svc?$top=5")); Assert.AreEqual(5, filteredQbservable.ToEnumerable().Last().MessageId); }