Carga de entidades relacionadas en DbContext simulado usando Moq para pruebas de controlador Web Api 2

Estoy intentando probar algunos controladores Web Api 2 que usan Entity Framework 6 pero tengo problemas con la carga de las entidades relacionadas después de que la entidad se haya agregado. Estoy usando Moq para crear un DbContext y DbSet simulados, y he agregado

public virtual void MarkAsModified<T>(T item) where T : class
{
   Entry(item).State = EntityState.Modified;
}

para moverse por el_db.Entry(foo).State = EntityState.Modified; problema en una acción Put.

La acción Api es una publicación en este ejemplo simplificado donde necesitamos recuperar 2 entidades relacionadas (Bar y Qux).

[ResponseType(typeof (Foo))]
public async Task<IHttpActionResult> PostFoo(Foo foo)
{
  if (!ModelState.IsValid)
  {
     return BadRequest(ModelState);
  }
  //Do other stuff
  _db.Foos.Add(foo);
  _db.Entry(foo).Reference(x => x.Bar).Load();
  _db.Entry(foo).Reference(x => x.Qux).Load();
  await _db.SaveChangesAsync();
  return CreatedAtRoute("DefaultApi", new {id = foo.Id},foo);
}

Y luego una prueba simplificada sería

[TestMethod]
public async Task PostFoo()
{
  var model = new Foo
  {
    Name="New Foo",
    QuxId = 99,
    Qux = null,
    BarId = 66,
    Bar = null
  };
 var result = await _controller.PostFoo(model) as CreatedAtRouteNegotiatedContentResult<Foo>;
 Assert.IsNotNull(result);
 Assert.IsNotNull(result.Qux);
 Assert.IsNotNull(result.Bar);
}

¿Hay alguna manera de hacer más simulada_db.Entry(foo).Reference(x => x.Bar).Load();

Respuestas a la pregunta(1)

Su respuesta a la pregunta