@@ -19,7 +19,7 @@ public class Fact : ComponentBase
1919
2020 protected override void BuildRenderTree ( RenderTreeBuilder builder )
2121 {
22- if ( ChildContent is null ) throw new ArgumentNullException ( nameof ( ChildContent ) ) ;
22+ if ( ChildContent is null ) throw new ArgumentNullException ( nameof ( ChildContent ) ) ;
2323
2424 builder . OpenElement ( 0 , ElementName ) ;
2525
@@ -35,9 +35,11 @@ protected override void BuildRenderTree(RenderTreeBuilder builder)
3535 }
3636 }
3737
38- public class TestSetup : ComponentBase
38+ public abstract class FactPart : ComponentBase
3939 {
40- internal const string ElementName = "RenderedHtml" ;
40+ public const string WrapperElement = "Html" ;
41+
42+ protected abstract string GetElementName ( ) ;
4143
4244 [ Parameter ]
4345 public RenderFragment ? ChildContent { get ; set ; }
@@ -47,60 +49,34 @@ public class TestSetup : ComponentBase
4749
4850 protected override void BuildRenderTree ( RenderTreeBuilder builder )
4951 {
50- builder . OpenElement ( 0 , ElementName ) ;
52+ builder . OpenElement ( 0 , GetElementName ( ) ) ;
5153
5254 if ( ! string . IsNullOrEmpty ( Id ) )
5355 builder . AddAttribute ( 1 , nameof ( Id ) , Id ) ;
5456
55- builder . AddContent ( 2 , ChildContent ) ;
57+ builder . OpenElement ( 10 , WrapperElement ) ;
58+ builder . AddContent ( 11 , ChildContent ) ;
59+ builder . CloseElement ( ) ;
5660
5761 builder . CloseElement ( ) ;
5862 }
5963 }
6064
61- public class ExpectedHtml : ComponentBase
65+ public class TestSetup : FactPart
6266 {
63- internal const string ElementName = "ExpectedHtml" ;
64-
65- [ Parameter ]
66- public RenderFragment ? ChildContent { get ; set ; }
67-
68- [ Parameter ]
69- public string ? Id { get ; set ; }
70-
71- protected override void BuildRenderTree ( RenderTreeBuilder builder )
72- {
73- builder . OpenElement ( 0 , ElementName ) ;
74-
75- if ( ! string . IsNullOrEmpty ( Id ) )
76- builder . AddAttribute ( 1 , nameof ( Id ) , Id ) ;
77-
78- builder . AddContent ( 2 , ChildContent ) ;
79-
80- builder . CloseElement ( ) ;
81- }
67+ public const string ElementName = "Rendered" ;
68+ protected override string GetElementName ( ) => ElementName ;
8269 }
8370
84- public class HtmlSnippet : ComponentBase
71+ public class ExpectedHtml : FactPart
8572 {
86- internal const string ElementName = "Html" ;
87-
88- [ Parameter ]
89- public RenderFragment ? ChildContent { get ; set ; }
90-
91- [ Parameter ]
92- public string ? Id { get ; set ; }
93-
94- protected override void BuildRenderTree ( RenderTreeBuilder builder )
95- {
96- builder . OpenElement ( 0 , ElementName ) ;
97-
98- if ( ! string . IsNullOrEmpty ( Id ) )
99- builder . AddAttribute ( 1 , nameof ( Id ) , Id ) ;
100-
101- builder . AddContent ( 2 , ChildContent ) ;
73+ public const string ElementName = "Expected" ;
74+ protected override string GetElementName ( ) => ElementName ;
75+ }
10276
103- builder . CloseElement ( ) ;
104- }
77+ public class HtmlSnippet : FactPart
78+ {
79+ public const string ElementName = "Snippet" ;
80+ protected override string GetElementName ( ) => ElementName ;
10581 }
10682}
0 commit comments