anchor.diff:      return TestInjectionContainer(
         projectGroupsNotifier: projectGroupsNotifier,
         child: MetricsThemedTestbed(
  +        metricsThemeData: theme,
           body: ProjectGroupDialog(
             strategy: strategy,
           ),
  
positive.code:   /// A [ProjectGroupsNotifier] that will be injected and used in tests.
    final ProjectGroupsNotifier projectGroupsNotifier;
  
    /// A [ProjectGroupDialogStrategy] strategy applied to this dialog.
    final ProjectGroupDialogStrategy strategy;
  
    /// Creates a new instance of the [_ProjectGroupDialogTestbed]
    /// with the given [strategy] and [projectGroupsNotifier].
    const _ProjectGroupDialogTestbed({
      Key key,
      this.strategy,
      this.projectGroupsNotifier,
    }) : super(key: key);
  
    @override
  
negative.code:   group("ProjectGroupDialog", () {
      const title = 'title';
      const buttonText = 'testText';
      const loadingText = 'loading...';
      const backgroundColor = Colors.red;
      const contentBorderColor = Colors.yellow;
      const titleTextStyle = TextStyle(
        color: Colors.grey,
      );
      const counterTextStyle = TextStyle(
        color: Colors.blue,
      );
  
      final projectGroupDialogViewModel = ProjectGroupDialogViewModel(
        id: "id",
        name: "name",
        selectedProjectIds: UnmodifiableListView<String>([]),
      );
  
      const theme = MetricsThemeData(
        projectGroupDialogTheme: ProjectGroupDialogThemeData(
          backgroundColor: backgroundColor,
          contentBorderColor: contentBorderColor,
          titleTextStyle: titleTextStyle,
          counterTextStyle: counterTextStyle,
        ),
      );
  
      final strategy = ProjectGroupDialogStrategyMock();
      ProjectGroupsNotifier projectGroupsNotifier;
  
      setUp(() {
        when(strategy.title).thenReturn(title);
        when(strategy.text).thenReturn(buttonText);
        when(strategy.loadingText).thenReturn(loadingText);
  
        projectGroupsNotifier = ProjectGroupsNotifierMock();
  
        when(projectGroupsNotifier.projectGroupDialogViewModel)
            .thenReturn(projectGroupDialogViewModel);
      });
  
      tearDown(() {
        reset(strategy);
        reset(projectGroupsNotifier);
      });
  
      testWidgets(
        "throws an AssertionError if the given strategy is null",
        (WidgetTester tester) async {
          await mockNetworkImagesFor(() {
            return tester.pumpWidget(const _ProjectGroupDialogTestbed(
              strategy: null,
            ));
          });
  
          expect(tester.takeException(), isAssertionError);
        },
      );
  
      testWidgets(
        "applies a hand cursor to the project group dialog action button",
        (WidgetTester tester) async {
          await mockNetworkImagesFor(() {
            return tester.pumpWidget(_ProjectGroupDialogTestbed(
              projectGroupsNotifier: projectGroupsNotifier,
              strategy: strategy,
            ));
          });
  
  