anchor.diff:  import 'package:devops/src/pubspec/pubspec.dart';
   import 'dart:async';
   import 'package:devops/src/pubspec/dependency.dart';
  -
  -main() {
  +import 'package:stack_trace/stack_trace.dart';
  +import 'package:logging/logging.dart';
  +
  +main() async {
  +  Logger.root.level = Level.ALL;
  +  Logger.root.onRecord.listen(print);
  +  hierarchicalLoggingEnabled = true;
  +
  +  Chain.capture(() {
  +    runDaTests();
  +  }, onError: (error, stackChain) {
  +    print("Caught error $error\n"
  +        "${stackChain.terse}");
  +  });
  +}
  +
  +runDaTests() {
     TestProcessor processor;
   
     group('depthFirst', () {
  
positive.code: 
    TestProcessInvocation(this.project, this.dependencies);
  
  //  bool operator==(other) => other is TestProcessInvocation
  //  && project == other.project && unorderedEquals();
  
  //  Matcher get matcher {
  //    new CustomMatcher()
  //  }
  
    static createTests(
        TestProcessInvocation actual(), TestProcessInvocation expected) {
      test('invocation has expected project', () {
        schedule(() => expect(actual().project, equals(expected.project)));
      });
  
negative.code:     testCase(
          thatWhen: 'no projects provided',
          asProvidedBy: () => [],
          expectTheseInvocations: (_) => []);
  
      testCase(
          thatWhen: 'a single project has no dependencies',
          asProvidedBy: () => [aProject('project1')],
          expectTheseInvocations: (Iterable<Project> projects) =>
              [new TestProcessInvocation(projects.first, const [])]);
  
  //    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));
  //      });
  //    });
  
    });
  }
  
  