Exemplo n.º 1
0
        public virtual List <TestReports> GetReportByTestName(DateTime fromDate, DateTime toDate)
        {
            SqlConnection connection = new SqlConnection(Connection);
            string        query      = "sp_GetReportByTest";

            connection.Open();

            SqlCommand command = new SqlCommand(query, connection);

            command.CommandType = System.Data.CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@FromDate", fromDate);
            command.Parameters.AddWithValue("@ToDate", toDate);
            SqlDataReader      reader         = command.ExecuteReader();
            List <TestReports> TestReportList = new List <TestReports>();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    string  testName    = reader["testName"].ToString();
                    int     totalTest   = (int)reader["totalTest"];
                    decimal totalAmount = (decimal)reader["totalAmount"];

                    TestReports TestReport = new TestReports(testName, totalTest, totalAmount);
                    TestReportList.Add(TestReport);
                }
                reader.Close();
            }

            connection.Close();
            return(TestReportList);
        }
        /// <summary>
        /// Processes the command.
        /// </summary>
        public void ProcessCommand()
        {
            TestReports testReports = new TestReports();

            ParseAllReports(testReports);

            foreach (string userStory in testReports.UserStories)
            {
                UserStoryData testCases = GetTestCasesForUserStory(testReports, userStory);

                using (ICodeWriter writer = new FileCodeWriter(Path.Combine(FolderWithGeneratedUserStories, userStory + ".htm")))
                {
                    UserStoryGenerator storyGenerator = new UserStoryGenerator(writer);
                    storyGenerator.Generate(testCases);
                }
            }
        }
        /// <summary>
        /// Collect all test cases thatare asociated with one user story.
        /// </summary>
        /// <param name="testReports">Colelction of test reports <see cref="TestReports"/></param>
        /// <param name="userStory">Nameof the user story</param>
        /// <returns>List of test cases</returns>
        private static UserStoryData GetTestCasesForUserStory(TestReports testReports, string userStory)
        {
            UserStoryData testCases = new UserStoryData();

            foreach (KeyValuePair <string, ReportData> keyValuePair in testReports.Reports)
            {
                IList <UserStory> userStories = UserStoryDataMiner.GetUserStoryDetails(keyValuePair.Value);
                foreach (UserStory story in userStories)
                {
                    if (story.UserStoryName == userStory)
                    {
                        foreach (ReportCase reportCase in story.TestCases)
                        {
                            testCases.AddReportCase(reportCase);
                        }
                    }
                }
            }

            return(testCases);
        }
        /// <summary>
        /// Parsesall available reports.
        /// </summary>
        /// <param name="testReports">Colelction of test reports <see cref="TestReports"/></param>
        private void ParseAllReports(TestReports testReports)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(FolderWithReportFiles);

            FileInfo[] reportFiles = directoryInfo.GetFiles("*.xml");
            foreach (FileInfo fileInfo in reportFiles)
            {
                ReportData reportData;
                using (ReportDataParser parser = new ReportDataParser(fileInfo.FullName))
                {
                    reportData = parser.Parse();
                }

                testReports.Reports.Add(fileInfo.Name, reportData);
                IList <UserStory> userStories = UserStoryDataMiner.GetUserStoryDetails(reportData);
                foreach (UserStory userStory in userStories)
                {
                    testReports.AddUserStoryName(userStory.UserStoryName);
                }
            }
        }