anchor.diff:    TestProcessor.createTests(() => processor, weGetTheseInvocations);
   }
   
  -Project aProject2(String name, {Iterable<Project> dependencies: const []}) =>
  -    aProject(name,
  +Project aProject(String name, {Iterable<Project> dependencies: const []}) =>
  +    __aProject(name,
           pathDependencies: dependencies.map((p) => new PathReference(p.name)));
   
  -Project aProject(String name,
  +Project __aProject(String name,
       {Iterable<PathReference> pathDependencies: const []}) {
     final dependencies = {};
     pathDependencies.forEach((pd) {
  
positive.code:         () => new TestProcessInvocation(project4, [project2, project3])
        ]);
      });
  
      //    group('for one project with no dependencies', () {
  //      MockProject project1;
  //
  //      setUp(() {
  //        project1 = new MockProject('project1', new PubSpec());
  //        scheduleForProjects([project1]);
  //      });
  //
  //      test('calls processor once', () {
  //        schedule(() => expect(processor.invocations, hasLength(1)));
  //      });
  //
  //      test('calls processor once with expected project', () {
  //        schedule(() =>
  //            expect(processor.invocations.first.project, equals(project1)));
  //      });
  //
  //      test('calls processor once with no dependencies', () {
  //        schedule(
  //            () => expect(processor.invocations.first.dependencies, isEmpty));
  //      });
  //    });
  
    });
  }
  
  
negative.code: }
  
  runDaTests() {
    group('depthFirst', () {
      group('when no projects provided', () =>
          expectThat(withTheseProjects: () => [], weGetTheseInvocations: []));
  
      group('for a single project that has no dependencies', () {
        final project1 = aProject('project1');
  
        expectThat(
            withTheseProjects: () => [project1],
            weGetTheseInvocations: [
          () => new TestProcessInvocation(project1, const [])
        ]);
  