anchor.diff:    });
   }
   
  +Project aProject2(String name, {Iterable<Project> dependencies: const []}) =>
  +    aProject(name,
  +        pathDependencies: dependencies.map((p) => new PathReference(p.name)));
  +
   Project aProject(String name,
       {Iterable<PathReference> pathDependencies: const []}) {
     final dependencies = {};
  
positive.code:   }
  }
  
  class MockProject extends Mock implements Project {
    MockProject(String name, PubSpec pubSpec) {
      when(this.name).thenReturn(name);
      when(this.pubspec).thenReturn(new Future.value(pubSpec));
    }
    noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
  
negative.code:         asProvidedBy: () => [],
          expectTheseInvocations: []);
  
      {
        TestProject project1;
        createProjects() {
          project1 = aProject('project1');
          return [project1];
        }
        testCase(
            thatWhen: 'a single project has no dependencies',
            asProvidedBy: createProjects,
            expectTheseInvocations: [
          () => new TestProcessInvocation(project1, const [])
        ]);
      }
  
      {
        final project1 = aProject('project1');
        final project2 = aProject2('project2', dependencies: [project1]);
        testCase(
            thatWhen: 'blah project has no dependencies',
            asProvidedBy: () => [project1, project2],
            expectTheseInvocations: [
          () => new TestProcessInvocation(project1, []),
          () => new TestProcessInvocation(project2, [project1])
        ]);
      }
  
  //    group('for one project with no dependencies', () {
  //      MockProject project1;
  