@@ -405,4 +405,84 @@ object Baz
405
405
// Assert
406
406
stringBuilder . ToString ( ) . Should ( ) . Be ( example . Replace ( "\r " , "" ) ) ;
407
407
}
408
+
409
+ /// <seealso href="https://plantuml.com/object-diagram#d1f08bf69f3d9b45"/>
410
+ [ TestMethod ]
411
+ public void ProgramEvaluationAndReviewTechniqueWithMap ( )
412
+ {
413
+ // Arrange
414
+ var example =
415
+ """
416
+ @startuml PERT
417
+ left to right direction
418
+ ' Horizontal lines: -->, <--, <-->
419
+ ' Vertical lines: ->, <-, <->
420
+ title PERT: Project Name
421
+
422
+ map Kick.Off {
423
+ }
424
+ map task.1 {
425
+ Start => End
426
+ }
427
+ map task.2 {
428
+ Start => End
429
+ }
430
+ map task.3 {
431
+ Start => End
432
+ }
433
+ map task.4 {
434
+ Start => End
435
+ }
436
+ map task.5 {
437
+ Start => End
438
+ }
439
+ Kick.Off --> task.1 : Label 1
440
+ Kick.Off --> task.2 : Label 2
441
+ Kick.Off --> task.3 : Label 3
442
+ task.1 --> task.4
443
+ task.2 --> task.4
444
+ task.3 --> task.4
445
+ task.4 --> task.5 : Label 4
446
+ @enduml
447
+
448
+ """ ;
449
+
450
+ var stringBuilder = new StringBuilder ( ) ;
451
+
452
+ // Act
453
+ stringBuilder . UmlDiagramStart ( "PERT" ) ;
454
+ stringBuilder . Direction ( DiagramDirection . LeftToRight ) ;
455
+ stringBuilder . Comment ( "Horizontal lines: -->, <--, <-->" ) ;
456
+ stringBuilder . Comment ( "Vertical lines: ->, <-, <->" ) ;
457
+ stringBuilder . Title ( "PERT: Project Name" ) ;
458
+ stringBuilder . AppendNewLine ( ) ;
459
+ stringBuilder . MapStart ( "Kick.Off" ) ;
460
+ stringBuilder . MapEnd ( ) ;
461
+ stringBuilder . MapStart ( "task.1" ) ;
462
+ stringBuilder . InlineClassMember ( "Start => End" ) ;
463
+ stringBuilder . MapEnd ( ) ;
464
+ stringBuilder . MapStart ( "task.2" ) ;
465
+ stringBuilder . InlineClassMember ( "Start => End" ) ;
466
+ stringBuilder . MapEnd ( ) ;
467
+ stringBuilder . MapStart ( "task.3" ) ;
468
+ stringBuilder . InlineClassMember ( "Start => End" ) ;
469
+ stringBuilder . MapEnd ( ) ;
470
+ stringBuilder . MapStart ( "task.4" ) ;
471
+ stringBuilder . InlineClassMember ( "Start => End" ) ;
472
+ stringBuilder . MapEnd ( ) ;
473
+ stringBuilder . MapStart ( "task.5" ) ;
474
+ stringBuilder . InlineClassMember ( "Start => End" ) ;
475
+ stringBuilder . MapEnd ( ) ;
476
+ stringBuilder . Relationship ( "Kick.Off" , "-->" , "task.1" , "Label 1" ) ;
477
+ stringBuilder . Relationship ( "Kick.Off" , "-->" , "task.2" , "Label 2" ) ;
478
+ stringBuilder . Relationship ( "Kick.Off" , "-->" , "task.3" , "Label 3" ) ;
479
+ stringBuilder . Relationship ( "task.1" , "-->" , "task.4" ) ;
480
+ stringBuilder . Relationship ( "task.2" , "-->" , "task.4" ) ;
481
+ stringBuilder . Relationship ( "task.3" , "-->" , "task.4" ) ;
482
+ stringBuilder . Relationship ( "task.4" , "-->" , "task.5" , "Label 4" ) ;
483
+ stringBuilder . UmlDiagramEnd ( ) ;
484
+
485
+ // Assert
486
+ stringBuilder . ToString ( ) . Should ( ) . Be ( example . Replace ( "\r " , "" ) ) ;
487
+ }
408
488
}
0 commit comments