public void CanStreamAllUsersGivenPartialSelectionIsSpecified() { var stream = new DummyResultStream <UserEntity, UserDto>(); IImmediateFlowQuery <UserEntity> query = Query <UserEntity>(); PartialSelection <UserEntity, UserDto> selection = query .PartialSelect(x => new UserDto(x.Firstname + " " + x.Lastname)) .Add(x => new UserDto { IsOnline = x.IsOnline, Id = x.Id }); Query <UserEntity>() .Streamed() .Select(stream, selection); Assert.That(stream.Items.Count, Is.EqualTo(4)); foreach (UserDto item in stream.Items) { Assert.That(item.Id, Is.GreaterThan(0)); Assert.That(item.Fullname, Is.Not.Null); } Assert.That(stream.Items.Any(x => x.IsOnline)); Assert.That(stream.Items.Any(x => !x.IsOnline)); }
public void TrowsGivenPartialSelectionIsEmpty() { var stream = new DummyResultStream <UserEntity, UserDto>(); IPartialSelection <UserEntity, UserDto> selection = new PartialSelection <UserEntity, UserDto>(x => null); Assert .That ( () => Query <UserEntity>() .Streamed() .Select(stream, selection), Throws.ArgumentException ); }
public void BuildSelectExpandNode_ThrowsODataException_IfUnknownSelectionItemPresent() { Selection selection = new PartialSelection(new[] { new Mock<SelectionItem>().Object }); SelectExpandClause selectExpandClause = new SelectExpandClause(selection, _emptyExpansion); IEdmEntityTypeReference entityType = new EdmEntityTypeReference(_model.Customer, false); Assert.Throws<ODataException>( () => SelectExpandNode.BuildSelectExpandNode(selectExpandClause, entityType, _model.Model), "$select does not support selections of type 'SelectionItemProxy'."); }