1- using System . IO ;
1+ using System ;
2+ using System . IO ;
23using System . Threading . Tasks ;
34using Microsoft . VisualStudio . TestTools . UnitTesting ;
5+ using RazorEngineCore . Tests . Models ;
46
57namespace RazorEngineCore . Tests
68{
@@ -24,7 +26,7 @@ public void TestSaveToStream()
2426
2527 Assert . AreEqual ( initialTemplateResult , loadedTemplateResult ) ;
2628 }
27-
29+
2830 [ TestMethod ]
2931 public async Task TestSaveToStreamAsync ( )
3032 {
@@ -44,7 +46,32 @@ public async Task TestSaveToStreamAsync()
4446 }
4547
4648 [ TestMethod ]
47- public void TestSaveToFile ( )
49+ public void TestSaveToFile_Typed ( )
50+ {
51+ RazorEngine razorEngine = new RazorEngine ( ) ;
52+ IRazorEngineCompiledTemplate < RazorEngineTemplateBase < TestModel > > initialTemplate = razorEngine . Compile < RazorEngineTemplateBase < TestModel > > ( "Hello @Model.A @Model.C" ) ;
53+
54+ initialTemplate . SaveToFile ( "testTemplate.dll" ) ;
55+
56+ IRazorEngineCompiledTemplate < RazorEngineTemplateBase < TestModel > > loadedTemplate = RazorEngineCompiledTemplate < RazorEngineTemplateBase < TestModel > > . LoadFromFile ( "testTemplate.dll" ) ;
57+
58+ Action < RazorEngineTemplateBase < TestModel > > action = initializer =>
59+ {
60+ initializer . Model = new TestModel ( )
61+ {
62+ A = 12345 ,
63+ C = "Alex"
64+ } ;
65+ } ;
66+
67+ string initialTemplateResult = initialTemplate . Run ( action ) ;
68+ string loadedTemplateResult = loadedTemplate . Run ( action ) ;
69+
70+ Assert . AreEqual ( initialTemplateResult , loadedTemplateResult ) ;
71+ }
72+
73+ [ TestMethod ]
74+ public void TestSaveToFile_Anonymous ( )
4875 {
4976 RazorEngine razorEngine = new RazorEngine ( ) ;
5077 IRazorEngineCompiledTemplate initialTemplate = razorEngine . Compile ( "Hello @Model.Name" ) ;
@@ -74,5 +101,60 @@ public async Task TestSaveToFileAsync()
74101
75102 Assert . AreEqual ( initialTemplateResult , loadedTemplateResult ) ;
76103 }
104+
105+ [ TestMethod ]
106+ public async Task TestSave_RazorEngineCompiledTemplateMeta_1 ( )
107+ {
108+ RazorEngineCompiledTemplateMeta meta1 = new RazorEngineCompiledTemplateMeta ( )
109+ {
110+ AssemblyByteCode = new byte [ ] { 1 , 2 , 3 } ,
111+ TemplateFileName = "name1" ,
112+ TemplateNamespace = "namespace1"
113+ } ;
114+
115+ MemoryStream memoryStream = new MemoryStream ( ) ;
116+
117+ await meta1 . Write ( memoryStream ) ;
118+ memoryStream . Position = 0 ;
119+
120+ RazorEngineCompiledTemplateMeta meta2 = await RazorEngineCompiledTemplateMeta . Read ( memoryStream ) ;
121+
122+ CollectionAssert . AreEqual ( meta1 . AssemblyByteCode , meta2 . AssemblyByteCode ) ;
123+ CollectionAssert . AreEqual ( meta1 . PdbByteCode , meta2 . PdbByteCode ) ;
124+ Assert . AreEqual ( meta1 . TemplateFileName , meta2 . TemplateFileName ) ;
125+ Assert . AreEqual ( meta1 . TemplateNamespace , meta2 . TemplateNamespace ) ;
126+ Assert . AreEqual ( meta1 . GeneratedSourceCode , meta2 . GeneratedSourceCode ) ;
127+ Assert . AreEqual ( meta1 . TemplateSource , meta2 . TemplateSource ) ;
128+ }
129+
130+ [ TestMethod ]
131+ public async Task TestSave_RazorEngineCompiledTemplateMeta_2 ( )
132+ {
133+ RazorEngineCompiledTemplateMeta meta1 = new RazorEngineCompiledTemplateMeta ( )
134+ {
135+ AssemblyByteCode = new byte [ ] { 1 , 2 , 3 } ,
136+ PdbByteCode = new byte [ ] { 1 , 2 , 3 } ,
137+ TemplateFileName = "111" ,
138+ TemplateNamespace = "222" ,
139+ GeneratedSourceCode = "33333" ,
140+ TemplateSource = "44444"
141+
142+ } ;
143+
144+ MemoryStream memoryStream = new MemoryStream ( ) ;
145+
146+ await meta1 . Write ( memoryStream ) ;
147+ memoryStream . Position = 0 ;
148+
149+ RazorEngineCompiledTemplateMeta meta2 = await RazorEngineCompiledTemplateMeta . Read ( memoryStream ) ;
150+
151+
152+ CollectionAssert . AreEqual ( meta1 . AssemblyByteCode , meta2 . AssemblyByteCode ) ;
153+ CollectionAssert . AreEqual ( meta1 . PdbByteCode , meta2 . PdbByteCode ) ;
154+ Assert . AreEqual ( meta1 . TemplateFileName , meta2 . TemplateFileName ) ;
155+ Assert . AreEqual ( meta1 . TemplateNamespace , meta2 . TemplateNamespace ) ;
156+ Assert . AreEqual ( meta1 . GeneratedSourceCode , meta2 . GeneratedSourceCode ) ;
157+ Assert . AreEqual ( meta1 . TemplateSource , meta2 . TemplateSource ) ;
158+ }
77159 }
78160}
0 commit comments