(t *testing.T)
| 689 | } |
| 690 | |
| 691 | func TestManager_ToDOT(t *testing.T) { |
| 692 | t.Parallel() |
| 693 | |
| 694 | t.Run("ExportSimpleGraph", func(t *testing.T) { |
| 695 | t.Parallel() |
| 696 | |
| 697 | manager := unit.NewManager() |
| 698 | |
| 699 | // Register units |
| 700 | err := manager.Register(unitA) |
| 701 | require.NoError(t, err) |
| 702 | err = manager.Register(unitB) |
| 703 | require.NoError(t, err) |
| 704 | |
| 705 | // Add dependency |
| 706 | err = manager.AddDependency(unitA, unitB, unit.StatusStarted) |
| 707 | require.NoError(t, err) |
| 708 | |
| 709 | dot, err := manager.ExportDOT("test") |
| 710 | require.NoError(t, err) |
| 711 | assert.NotEmpty(t, dot) |
| 712 | assert.Contains(t, dot, "digraph") |
| 713 | }) |
| 714 | |
| 715 | t.Run("ExportComplexGraph", func(t *testing.T) { |
| 716 | t.Parallel() |
| 717 | |
| 718 | manager := unit.NewManager() |
| 719 | |
| 720 | // Register all units |
| 721 | units := []unit.ID{unitA, unitB, unitC, unitD} |
| 722 | for _, unit := range units { |
| 723 | err := manager.Register(unit) |
| 724 | require.NoError(t, err) |
| 725 | } |
| 726 | |
| 727 | // Create complex dependency graph |
| 728 | // A depends on B and C, B depends on D, C depends on D |
| 729 | err := manager.AddDependency(unitA, unitB, unit.StatusStarted) |
| 730 | require.NoError(t, err) |
| 731 | err = manager.AddDependency(unitA, unitC, unit.StatusStarted) |
| 732 | require.NoError(t, err) |
| 733 | err = manager.AddDependency(unitB, unitD, unit.StatusComplete) |
| 734 | require.NoError(t, err) |
| 735 | err = manager.AddDependency(unitC, unitD, unit.StatusComplete) |
| 736 | require.NoError(t, err) |
| 737 | |
| 738 | dot, err := manager.ExportDOT("complex") |
| 739 | require.NoError(t, err) |
| 740 | assert.NotEmpty(t, dot) |
| 741 | assert.Contains(t, dot, "digraph") |
| 742 | }) |
| 743 | } |
nothing calls this directly
no test coverage detected