anchor.diff:          asProvidedBy: () => [],
           expectTheseInvocations: []);
   
  -    testCase(
  -        thatWhen: 'a single project has no dependencies',
  -        asProvidedBy: () => [aProject('project1')],
  -        expectTheseInvocations: [
  -      (projects) => new TestProcessInvocation(projects.first, const [])
  -    ]);
  +    {
  +      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;
  
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:   }
  }
  
  typedef TestProcessInvocation TestProcessInvocationFactory();
  
  class TestProcessInvocation {
    final Project project;
  