33using PnP . Framework . Provisioning . Providers . Xml ;
44using System ;
55using System . IO ;
6+ using System . Linq ;
67
78namespace PnP . Framework . Test . Framework . Connectors
89{
@@ -62,7 +63,7 @@ private static void OpenXMLSaveTemplateInternal()
6263 fileSystemConnector ,
6364 "OfficeDevPnP Automated Test" ) ;
6465
65- SaveFileInPackage ( fileSystemConnector . Parameters [ FileConnectorBase . CONNECTIONSTRING ] + @"\Templates\ProvisioningSchema-2015-12 -FullSample-02 .xml" , "" , openXMLConnector ) ;
66+ SaveFileInPackage ( fileSystemConnector . Parameters [ FileConnectorBase . CONNECTIONSTRING ] + @"\Templates\ProvisioningSchema-2022-09 -FullSample-01 .xml" , "" , openXMLConnector ) ;
6667 SaveFileInPackage ( fileSystemConnector . Parameters [ FileConnectorBase . CONNECTIONSTRING ] + @"\garagelogo.png" , "Images" , openXMLConnector ) ;
6768 SaveFileInPackage ( fileSystemConnector . Parameters [ FileConnectorBase . CONNECTIONSTRING ] + @"\garagebg.jpg" , "Images" , openXMLConnector ) ;
6869
@@ -81,7 +82,7 @@ public void OpenXMLLoadTemplateOriginal()
8182 "Templates" ) ;
8283
8384 var openXMLConnector = new OpenXMLConnector ( packageFileNameBackwardsCompatibility , fileSystemConnector ) ;
84- var templateFile = openXMLConnector . GetFileStream ( "ProvisioningSchema-2019-03 -FullSample-01 .xml" ) ;
85+ var templateFile = openXMLConnector . GetFileStream ( "ProvisioningSchema-2015-12 -FullSample-02 .xml" ) ;
8586
8687 XMLPnPSchemaV201903Serializer formatter = new XMLPnPSchemaV201903Serializer ( ) ;
8788 var checkTemplate = formatter . IsValid ( templateFile ) ;
@@ -209,7 +210,58 @@ public void OpenXMLFileDuplicationTest()
209210 ( ( ICommitableFileConnector ) openXMLConnector ) . Commit ( ) ;
210211 }
211212 }
213+ }
214+
215+ /// <summary>
216+ /// Tests that the template can be loaded successfully from the XMLOpenXMLTemplateProvider given the template filename
217+ /// </summary>
218+ [ TestMethod ]
219+ public void OpenXMLFileLoadTemplateTest ( )
220+ {
221+ var fileSystemConnector = new FileSystemConnector ( String . Format ( @"{0}\..\..\..\Resources" , AppDomain . CurrentDomain . BaseDirectory ) , "Templates" ) ;
222+ var openXMLConnector = new OpenXMLConnector ( packageFileName , fileSystemConnector ) ;
223+ var templateFileName = openXMLConnector . GetFiles ( ) . FirstOrDefault ( f => f . EndsWith ( ".xml" ) ) ;
224+
225+ var templateProvider = new XMLOpenXMLTemplateProvider ( openXMLConnector ) ;
226+ var template = templateProvider . GetTemplate ( templateFileName ) ;
227+
228+ Assert . IsNotNull ( template ) ;
229+ }
212230
231+ /// <summary>
232+ /// Save a template using XMLOpenXMLTemplateProvider and ensure it is saved correctly
233+ /// </summary>
234+ [ TestMethod ]
235+ public void XMLOpenXMLTemplateProvider_SaveAs ( )
236+ {
237+ string packageName = Guid . NewGuid ( ) . ToString ( ) + ".pnp" ;
238+ string templateName = "a" + Guid . NewGuid ( ) . ToString ( ) ;
239+
240+ var fileSystemConnector = new FileSystemConnector ( String . Format ( @"{0}\..\..\..\Resources" , AppDomain . CurrentDomain . BaseDirectory ) , "Templates" ) ;
241+
242+ try
243+ {
244+ var openXMLConnector = new OpenXMLConnector ( packageName , fileSystemConnector ) ;
245+
246+ var templateProvider = new XMLOpenXMLTemplateProvider ( openXMLConnector ) ;
247+ var template = new Provisioning . Model . ProvisioningTemplate ( )
248+ {
249+ Description = "Test"
250+ } ;
251+
252+ //Add the template to the package
253+ templateProvider . SaveAs ( template , templateName ) ;
254+
255+ //Re-open it and check that it has been saved with the correct template name
256+ openXMLConnector = new OpenXMLConnector ( packageName , fileSystemConnector ) ;
257+ template = templateProvider . GetTemplate ( templateName ) ;
258+
259+ Assert . AreEqual ( "Test" , template ? . Description ) ;
260+ }
261+ finally
262+ {
263+ fileSystemConnector . DeleteFile ( packageName ) ;
264+ }
213265 }
214266 #endregion
215267 }
0 commit comments