/// <summary> /// Creates a new PTM profile /// </summary> /// <param name="filename">The file name to save the profile</param> /// <param name="testSuiteName">The test suite name</param> /// <param name="version">The test suite version</param> /// <param name="configurationId">Configuration id</param> /// <returns>An instance of ProfileUtil</returns> public static ProfileUtil CreateProfile(string filename, string testSuiteName, string version) { ProfileUtil profile = new ProfileUtil(); profile.profilePackage = Package.Open(filename, FileMode.Create); PackagePart profilePart = profile.profilePackage.CreatePart(profilePartUri, System.Net.Mime.MediaTypeNames.Text.Xml); profile.profileStream = profilePart.GetStream(); PackagePart playlist = profile.profilePackage.CreatePart(playlistPartUri, System.Net.Mime.MediaTypeNames.Text.Xml); profile.playlistStream = playlist.GetStream(); PackagePart profileInfo = profile.profilePackage.CreatePart(profileInfoPartUri, System.Net.Mime.MediaTypeNames.Text.Xml); profile.Info = new ProfileInfo() { TestSuiteName = testSuiteName, Version = version }; var stream = profileInfo.GetStream(); profile.Info.WriteTo(stream); stream.Flush(); stream.Close(); return(profile); }
private string CreateProfile(ProfileExportRequest request) { List <TestCase> testCases = new List <TestCase>(); var configurationNode = StoragePool.GetKnownNode(KnownStorageNodeNames.Configuration); var testSuite = GetTestSuite(request.TestSuiteId); using (ProfileUtil profile = ProfileUtil.CreateProfile( request.FileName, testSuite.Name, testSuite.Version)) { string configBasePath = GetConfigurationsPath(request.ConfigurationId, configurationNode.AbsolutePath); string profileSourceFile = Path.Combine(configBasePath, ConfigurationConsts.Profile); ProfileUtil.FileToStream(profileSourceFile, profile.ProfileStream); string ptfConfigSourceDir = GetPtfConfigBasePath(request.ConfigurationId, configurationNode.AbsolutePath); string[] ptfConfigFiles = Directory.GetFiles(ptfConfigSourceDir, "*.ptfconfig", SearchOption.TopDirectoryOnly); foreach (string settingsConfigFile in ptfConfigFiles) { profile.AddPtfCfg(settingsConfigFile); } if (request.SelectedTestCases != null) { foreach (var testCaseName in request.SelectedTestCases) { var testCase = new TestCase() { FullName = testCaseName, IsChecked = true }; testCases.Add(testCase); } } ExportPlaylist(profile.PlaylistStream, true, request.TestResultId, testCases); } return(request.FileName); }
/// <summary> /// Loads the profile from file. /// </summary> /// <param name="filename">The file name</param> /// <param name="configurationId">Configuration id</param> /// <returns>An instance of ProfileUtil</returns> public static ProfileUtil LoadProfile(string filename) { ProfileUtil util = new ProfileUtil(); util.profilePackage = Package.Open(filename, FileMode.Open); if (util.profilePackage.PartExists(playlistPartUri)) { PackagePart playlist = util.profilePackage.GetPart(playlistPartUri); util.playlistStream = playlist.GetStream(); } if (util.profilePackage.PartExists(profilePartUri)) { PackagePart profilePart = util.profilePackage.GetPart(profilePartUri); util.profileStream = profilePart.GetStream(); } if (util.profilePackage.PartExists(profileInfoPartUri)) { PackagePart profileInfoPart = util.profilePackage.GetPart(profileInfoPartUri); util.Info = ProfileInfo.ReadFrom(profileInfoPart.GetStream()); } return(util); }
/// <summary> /// Loads the configurations from a saved profile. /// </summary> /// <param name="request">Profile request.</param> public void LoadProfileSettings(ProfileRequest request) { string filenameWithoutExtension = Path.GetFileNameWithoutExtension(request.FileName); var baseNode = StoragePool.GetKnownNode(KnownStorageNodeNames.TestSuite); if (baseNode.NodeExists(filenameWithoutExtension)) { baseNode.RemoveNode(filenameWithoutExtension); } var profileNode = baseNode.CreateNode(filenameWithoutExtension); profileNode.CreateFile(request.FileName, request.Stream); string fullName = Path.Combine(profileNode.AbsolutePath, request.FileName); var configurationNode = StoragePool.GetKnownNode(KnownStorageNodeNames.Configuration); var testSuite = GetTestSuite(request.TestSuiteId); using (ProfileUtil profile = ProfileUtil.LoadProfile(fullName)) { if (!profile.VerifyVersion(testSuite.Version)) { if (profile.Info != null) { throw new InvalidDataException(string.Format ( StringMessages.ProfileNotMatchError, profile.Info.TestSuiteName, profile.Info.Version, testSuite.Name, testSuite.Version ) ); } else { throw new InvalidDataException(StringMessages.InvalidProfile); } } string configBaseNode = GetConfigurationsPath(request.ConfigurationId, configurationNode.AbsolutePath); if (!configurationNode.NodeExists(configBaseNode)) { configurationNode.CreateNode(configBaseNode); } string profileDestinationPath = Path.Combine(configBaseNode, ConfigurationConsts.Profile); string playlistDestinationPath = Path.Combine(configBaseNode, ConfigurationConsts.PlayList); configurationNode.RemoveFile(profileDestinationPath); configurationNode.RemoveFile(playlistDestinationPath); configurationNode.CreateFile(profileDestinationPath, profile.ProfileStream); configurationNode.CreateFile(playlistDestinationPath, profile.PlaylistStream); string ptfConfigsDestinationDir = GetPtfConfigBasePath(request.ConfigurationId, configurationNode.AbsolutePath); profile.SavePtfCfgTo(ptfConfigsDestinationDir); } }