Skip to content

Commit f9839db

Browse files
authored
Merge pull request #64 from JansthcirlU/63-add-non-generic-subgraphcreate-factory-method-to-be-backwards-compatible
63 add non generic subgraphcreate factory method to be backwards compatible
2 parents 63acda3 + 5c7043d commit f9839db

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

src/Mermaid.Flowcharts/Subgraphs/Subgraph.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ public static Subgraph Create<TNodeText>(string identifier, TNodeText title, Sub
4242
where TNodeText : INodeText
4343
=> new(NodeIdentifier.FromString(identifier), title, direction);
4444

45+
public static Subgraph CreateNew(string title, SubgraphDirection? direction = null)
46+
=> CreateNew<MermaidUnicodeText>(title, direction);
47+
48+
public static Subgraph Create(string identifier, string title, SubgraphDirection? direction = null)
49+
=> Create<MermaidUnicodeText>(identifier, title, direction);
50+
4551
public Subgraph AddNode(INode node)
4652
{
4753
if (node is Node nd && Nodes.Any(nd.Equals))

tests/Mermaid.Flowcharts.Tests/NodeTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,13 @@ public void CreateNew_WhenNonGeneric_ShouldHaveGuidIdentifier()
135135
public void Create_WhenNonGeneric_ShouldBeUnicode()
136136
{
137137
// Arrange
138-
Node node = Node.Create("A", "a");
138+
Node node = Node.Create("a", "A");
139139

140140
// Act
141141
INodeText text = node.Text;
142142

143143
// Assert
144144
Assert.True(text is MermaidUnicodeText);
145+
Assert.Equal("A", text.Value);
145146
}
146147
}

tests/Mermaid.Flowcharts.Tests/SubgraphTests.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,4 +309,32 @@ public void ToMermaidString_WhenIndentations(string identifier, string title, st
309309
// Assert
310310
Assert.Equal(expected, actual);
311311
}
312+
313+
[Fact]
314+
public void CreateNew_WhenNonGeneric_ShouldHaveGuidIdentifier()
315+
{
316+
// Arrange
317+
Subgraph subgraph = Subgraph.CreateNew("text");
318+
319+
// Act
320+
bool parsed = Guid.TryParseExact(subgraph.Id.Value, "D", out Guid guid);
321+
322+
// Assert
323+
Assert.True(parsed);
324+
Assert.True(guid != Guid.Empty);
325+
}
326+
327+
[Fact]
328+
public void Create_WhenNonGeneric_ShouldBeUnicode()
329+
{
330+
// Arrange
331+
Subgraph subgraph = Subgraph.Create("sg", "SG");
332+
333+
// Act
334+
INodeText title = subgraph.Title;
335+
336+
// Assert
337+
Assert.True(title is MermaidUnicodeText);
338+
Assert.Equal("SG", title.Value);
339+
}
312340
}

0 commit comments

Comments
 (0)