Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
            }
        }