1-
2- using Blazor . Diagrams . Components ;
1+ using Blazor . Diagrams . Components . Renderers ;
32using Blazor . Diagrams . Core . Geometry ;
43using Blazor . Diagrams . Core . Models ;
5-
4+ using Blazor . Diagrams . Tests . TestComponents ;
65using Bunit ;
7-
86using FluentAssertions ;
9-
107using Microsoft . AspNetCore . Components . Web ;
11-
128using System . Threading . Tasks ;
13-
149using Xunit ;
1510
1611namespace Blazor . Diagrams . Tests . Components
@@ -29,13 +24,14 @@ public void ShouldRenderCircle()
2924 link . Vertices . Add ( vertex ) ;
3025
3126 // Act
32- var cut = ctx . RenderComponent < LinkVertexWidget > ( parameters => parameters
27+ var cut = ctx . RenderComponent < LinkVertexRenderer > ( parameters => parameters
3328 . Add ( n => n . Vertex , vertex )
3429 . Add ( n => n . Color , "red" )
35- . Add ( n => n . SelectedColor , "blue" ) ) ;
30+ . Add ( n => n . SelectedColor , "blue" )
31+ . Add ( n => n . BlazorDiagram , new BlazorDiagram ( ) ) ) ;
3632
3733 // Assert
38- cut . MarkupMatches ( "<circle cx=\" 10.5\" cy=\" 20\" r=\" 5\" fill=\" red\" cursor= \" move \" / >" ) ;
34+ cut . MarkupMatches ( "<g class= \" link-vertex \" cursor= \" move \" >< circle cx=\" 10.5\" cy=\" 20\" r=\" 5\" fill=\" red\" /></g >" ) ;
3935 }
4036
4137 [ Fact ]
@@ -51,13 +47,14 @@ public void ShouldRenderCircleWithSelectedColor_WhenVertexIsSelected()
5147 vertex . Selected = true ;
5248
5349 // Act
54- var cut = ctx . RenderComponent < LinkVertexWidget > ( parameters => parameters
50+ var cut = ctx . RenderComponent < LinkVertexRenderer > ( parameters => parameters
5551 . Add ( n => n . Vertex , vertex )
5652 . Add ( n => n . Color , "red" )
57- . Add ( n => n . SelectedColor , "blue" ) ) ;
53+ . Add ( n => n . SelectedColor , "blue" )
54+ . Add ( n => n . BlazorDiagram , new BlazorDiagram ( ) ) ) ;
5855
5956 // Assert
60- cut . MarkupMatches ( "<circle cx=\" 10.5\" cy=\" 20\" r=\" 5\" fill=\" blue\" cursor= \" move \" / >" ) ;
57+ cut . MarkupMatches ( "<g class= \" link-vertex \" cursor= \" move \" >< circle cx=\" 10.5\" cy=\" 20\" r=\" 5\" fill=\" blue\" /></g >" ) ;
6158 }
6259
6360 [ Fact ]
@@ -72,10 +69,11 @@ public void ShouldRerender_WhenVertexIsRefreshed()
7269 link . Vertices . Add ( vertex ) ;
7370
7471 // Act
75- var cut = ctx . RenderComponent < LinkVertexWidget > ( parameters => parameters
72+ var cut = ctx . RenderComponent < LinkVertexRenderer > ( parameters => parameters
7673 . Add ( n => n . Vertex , vertex )
7774 . Add ( n => n . Color , "red" )
78- . Add ( n => n . SelectedColor , "blue" ) ) ;
75+ . Add ( n => n . SelectedColor , "blue" )
76+ . Add ( n => n . BlazorDiagram , new BlazorDiagram ( ) ) ) ;
7977
8078 // Assert
8179 cut . RenderCount . Should ( ) . Be ( 1 ) ;
@@ -97,16 +95,41 @@ public async Task ShouldDeleteItselfAndRefreshParent_WhenDoubleClicked()
9795 link . Changed += _ => linkRefreshes ++ ;
9896
9997 // Act
100- var cut = ctx . RenderComponent < LinkVertexWidget > ( parameters => parameters
98+ var cut = ctx . RenderComponent < LinkVertexRenderer > ( parameters => parameters
10199 . Add ( n => n . Vertex , vertex )
102100 . Add ( n => n . Color , "red" )
103- . Add ( n => n . SelectedColor , "blue" ) ) ;
101+ . Add ( n => n . SelectedColor , "blue" )
102+ . Add ( n => n . BlazorDiagram , new BlazorDiagram ( ) ) ) ;
104103
105104 await cut . Find ( "circle" ) . DoubleClickAsync ( new MouseEventArgs ( ) ) ;
106105
107106 // Assert
108107 link . Vertices . Should ( ) . BeEmpty ( ) ;
109108 linkRefreshes . Should ( ) . Be ( 1 ) ;
110109 }
110+
111+ [ Fact ]
112+ public void ShouldUseCustomComponent_WhenProvided ( )
113+ {
114+ // Arrange
115+ using var ctx = new TestContext ( ) ;
116+ var diagram = new BlazorDiagram ( ) ;
117+ diagram . RegisterComponent < LinkVertexModel , CustomVertexWidget > ( ) ;
118+ var node1 = new NodeModel ( ) ;
119+ var node2 = new NodeModel ( ) ;
120+ var link = new LinkModel ( node1 , node2 ) ;
121+ var vertex = new LinkVertexModel ( link , new Point ( 10.5 , 20 ) ) ;
122+ link . Vertices . Add ( vertex ) ;
123+
124+ // Act
125+ var cut = ctx . RenderComponent < LinkVertexRenderer > ( parameters => parameters
126+ . Add ( n => n . Vertex , vertex )
127+ . Add ( n => n . Color , "red" )
128+ . Add ( n => n . SelectedColor , "blue" )
129+ . Add ( n => n . BlazorDiagram , diagram ) ) ;
130+
131+ // Assert
132+ cut . MarkupMatches ( "<g class=\" link-vertex\" cursor=\" move\" ><circle cx=\" 10.5\" cy=\" 20\" r=\" 10\" fill=\" red\" /></g>" ) ;
133+ }
111134 }
112135}
0 commit comments