It depends on what you want to test:
- Do you want to test the data retrieval from the database?
- Building the objects from the datasets?
- Inserts or updates to the database?
- And so on...
Here's a suggestion:
An order contains all its children. This is an aggregate, a whole.
You get an order with details from a repository:
var order = repository.GetOrderBy(id);
The repository gets the data from the database:
var dataset = orderDatabase.GetOrderAndDetailsBy(id);
The repository could use a builder to create the order:
var order = orderBuilder.CreateOrderAndDetailsFrom(dataset);
You would have to create a repository as follows:
var repository = new OrderRepository(orderDatabase, orderBuilder);
Now you can create a repository with fake collaborators, depending on what you want to test.