Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Difficult.</p> <p>I think you have two options.</p> <p>If you can change the return type of <code>Headers</code> from <code>IEntityRepository&lt;T&gt;</code> to <code>IQueryable&lt;T&gt;</code>, you can return a queryable <code>List&lt;T&gt;</code> for <code>Headers</code>:</p> <pre><code>IList&lt;T&gt; list = new List&lt;Header&gt; { /* Some Header object */ } IQueryable&lt;T&gt; queryableList = list.AsQueryable(); _repository.Stub(x =&gt; x.Headers).Return(queryableList); </code></pre> <p>If you can't change the return type, you need to create a test fake (a new class) that derives from <code>IEntityRepository&lt;T&gt;</code>, and wraps a queryable <code>List&lt;T&gt;</code>. You will need to implement all the methods that <code>IEntityRepository&lt;T&gt;</code> and its interfaces define, but just call the relevant function on the queryable <code>List&lt;T&gt;</code>. Then you add a relevant <code>Header</code> to the underlying queryable <code>List&lt;T&gt;</code> as above and return a new instance of this object to stub <code>Headers</code>.</p> <p><code>IQueryable&lt;Header&gt;</code> Wrapper would look something like this:</p> <pre><code>public class HeadersWrapper : IQueryable&lt;Header&gt; { private readonly IQueryable&lt;Header&gt; _queryableSource; public HeadersWrapper(IEnumerable&lt;Header&gt; source) { _queryableSource = source.AsQueryable(); } public IEnumerator&lt;Header&gt; GetEnumerator() { return _queryableSource.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public Expression Expression { get { return _queryableSource.Expression; } } public Type ElementType { get { return _queryableSource.ElementType; } } public IQueryProvider Provider { get { return _queryableSource.Provider; } } } </code></pre> <p>And you'd use it something like this:</p> <pre><code>var headers = new List&lt;Header&gt; { new Header { Id = "foo" } }; var wrapper = new HeadersWrapper(headers); repo.Stub(x =&gt; x.Headers).Return(wrapper); </code></pre> <p>And of course, you can exchange <code>IQueryable&lt;Header&gt;</code> for <code>IEntityRepository&lt;Header&gt;</code> if you want to.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload