From 0de738399040a2b4a2b1d472c8cdb3edd6dfddaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Strz=C4=99pek?= Date: Sun, 11 Dec 2022 17:42:00 +0100 Subject: [PATCH] Fixed relations drew in wrong direction --- .../ClassDiagramGeneratorTests.cs | 4 +- .../ClassDiagramGenerator.cs | 41 +++++++++---------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/DomainModel.Generator.Mermaid.Tests/ClassDiagramGeneratorTests.cs b/DomainModel.Generator.Mermaid.Tests/ClassDiagramGeneratorTests.cs index 3486dc3..c81388f 100644 --- a/DomainModel.Generator.Mermaid.Tests/ClassDiagramGeneratorTests.cs +++ b/DomainModel.Generator.Mermaid.Tests/ClassDiagramGeneratorTests.cs @@ -51,8 +51,6 @@ public void AddClass_WithAttributeWithTypeWithSpecialCharacters_ShouldDisplayCla }.ToDiagram()); } - - [Fact] public void TwoEmptyClasses_WithRelation_ShouldDisplayRelationOnly() { @@ -63,7 +61,7 @@ public void TwoEmptyClasses_WithRelation_ShouldDisplayRelationOnly() var diagram = sut.Generate(); diagram.Should().Be(new[]{ "classDiagram", - "ClassA <|-- ClassB" + "ClassA --|> ClassB" }.ToDiagram()); } } diff --git a/DomainModel.Generator.Mermaid/ClassDiagramGenerator.cs b/DomainModel.Generator.Mermaid/ClassDiagramGenerator.cs index 24e924f..cf9f2c3 100644 --- a/DomainModel.Generator.Mermaid/ClassDiagramGenerator.cs +++ b/DomainModel.Generator.Mermaid/ClassDiagramGenerator.cs @@ -33,33 +33,33 @@ public IClass AddClass(string name) classes.TryGetValue(name, out var @class); return @class; } - private void AddRelation(IClass classA, IClass classB, string symbol, string? label = default) + private void AddRelation(IClass from, IClass to, string symbol, string? label = default) { - HashSet key = new(new[] { classA.Name, classB.Name }); + HashSet key = new(new[] { from.Name, to.Name }); if (!relations.ContainsKey(key)) relations.Add(key, new Relation( - classA.Name, - classB.Name, + from.Name, + to.Name, symbol, label )); } - public void LinkWithInheritance(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "<|--", label); - public void LinkWithComposition(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "*--", label); - public void LinkWithAggregation(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "o--", label); - public void LinkWithAssociation(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "<--", label); - public void LinkSolid(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "--", label); - public void LinkDashed(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "..", label); - public void LinkWithDependency(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "<..", label); - public void LinkWithRealization(IClass classA, IClass classB, string? label = default) - => AddRelation(classA, classB, "<|..", label); + public void LinkWithInheritance(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "--|>", label); + public void LinkWithComposition(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "--*", label); + public void LinkWithAggregation(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "--o", label); + public void LinkWithAssociation(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "-->", label); + public void LinkSolid(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "--", label); + public void LinkDashed(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "..", label); + public void LinkWithDependency(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "..>", label); + public void LinkWithRealization(IClass from, IClass to, string? label = default) + => AddRelation(from, to, "..|>", label); private bool RelationExist(string className) => relations.Keys.Any(r => r.Contains(className)); @@ -80,7 +80,6 @@ public string Generate() } class ClassDescription : IClass { - public bool IsEmpty { get; private set; } = true; private readonly System.Text.StringBuilder diagramBuilder; public ClassDescription(string name)