コード例 #1
0
        public void BuildTestCases_should_return_correct_model_values_from_casecollection()
        {
            // given
            var testCaseViewModelBuilder = new TestCaseViewModelBuilder();

            var caseCollection = new CaseCollection
            {
                TestCases = new List<Case>
                {
                    new Case {Id = 1, ShortDescription = "Short Description 1", Url = "http://www.google.com"},
                    new Case {Id = 2, ShortDescription = "Short Description 2", Url = "http://www.arsenal.com"},
                }
            };

            // when
            var testCaseViewModels = testCaseViewModelBuilder.BuildTestCases(caseCollection);

            // then
            Assert.NotNull(testCaseViewModels);
            Assert.AreEqual(2, testCaseViewModels.Count());

            var firstCase = testCaseViewModels.First();
            Assert.AreEqual(1, firstCase.Id);
            Assert.AreEqual("Short Description 1", firstCase.ShortDescription);
            Assert.AreEqual("http://www.google.com", firstCase.Url);

            var lastCase = testCaseViewModels.Last();
            Assert.AreEqual(2, lastCase.Id);
            Assert.AreEqual("Short Description 2", lastCase.ShortDescription);
            Assert.AreEqual("http://www.arsenal.com", lastCase.Url);
        }
コード例 #2
0
        public CaseCollection Read(TextReader textReader)
        {
            // Clean up any invalid XML
            string originalXml = textReader.ReadToEnd();
            string validXml = ReEncodeAttributeValues(originalXml);
            var stringReader = new StringReader(validXml);

            var testCollection = new CaseCollection();
            XDocument doc = XDocument.Load(stringReader);

            // Check for <testcases>
            XElement rootElement = doc.Elements().FirstOrDefault(i => i.Name.LocalName == "testcases");
            if (rootElement == null)
                throw new TestCaseException("<testcases> node is missing from the config file.");

            // Repeats
            int repeatValue = 0;
            string repeatAttribute = XmlHelper.GetOptionalAttribute(rootElement, "repeat");
            int.TryParse(repeatAttribute, out repeatValue);
            testCollection.Repeat = repeatValue;

            // <testvar>
            testCollection.Variables = GetTestVars(rootElement);

            // <case> - add each  one and re-order them by their id="" attribute.
            var testCases = new List<Case>();
            foreach (XElement element in rootElement.Elements().Where(x => x.Name.LocalName == "case"))
            {
                Case testCase = GetTestCase(element);
                testCases.Add(testCase);
            }
            testCollection.TestCases = testCases.OrderBy(x => x.Id);

            return testCollection;
        }
コード例 #3
0
        public IEnumerable<TestCaseViewModel> BuildTestCases(CaseCollection caseCollection)
        {
            if (caseCollection == null)
            {
                throw new ArgumentNullException("caseCollection");
            }

            return caseCollection.TestCases.Select(x => new TestCaseViewModel()
            {
                Id = x.Id,
                ShortDescription = x.ShortDescription,
                Url = x.Url
            });
        }
コード例 #4
0
ファイル: CaseService.cs プロジェクト: ibollen/website
        public static CaseCollection GetList()
        {
            CaseCollection list = new CaseCollection();
            string sql = @"select * from t_case";
            MySqlDataReader reader = DbHelper.ExecuteDataReader(sql);
            if (reader.HasRows)
            {
                while(reader.Read())
                {
                    list.Add(FillDataRecord(reader));
                }
            }
            reader.Close();

            return list;
        }
コード例 #5
0
ファイル: Case.cs プロジェクト: juinti/juinti
        public static CaseCollection GetCasesByCustomerID(Int64 CustomerID)
        {
            CaseCollection c = new CaseCollection();

            DataTable dt = Execute.FillDataTable(StoredProcedures.GetCasesByCustomerID, new System.Data.SqlClient.SqlParameter("CustomerID", CustomerID));

            if (dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    Case o = new Case();
                    LoadCaseByReader(row, o);
                    c.Add(o);
                }
            }

            return(c);
        }
コード例 #6
0
    private void CreateCaseDropdown()
    {
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter writer = new HtmlTextWriter(sw))
            {
                CaseCollection cases = Juinti.Case.Utils.GetCasesByCustomerID(customer.ID);

                writer.RenderBeginTag(HtmlTextWriterTag.Ul);

                writer.RenderBeginTag(HtmlTextWriterTag.Li);
                writer.AddAttribute("href", "#");
                writer.AddAttribute("onclick", "createCase(); return false;");
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.AddAttribute("class", "title");
                writer.RenderBeginTag(HtmlTextWriterTag.Span);
                writer.Write(Resources.Global.CreateCase);
                writer.RenderEndTag(); // Span
                writer.RenderEndTag(); // A
                writer.RenderEndTag(); // Li

                foreach (var item in cases)
                {
                    writer.AddAttribute("class", item.ID == caseID ? "menuitem selected" : "menuitem");

                    writer.RenderBeginTag(HtmlTextWriterTag.Li);
                    writer.AddAttribute("href", Urls.OverviewUrl + "?caseid=" + item.ID + "&pagetype=overview#tabindex-0");
                    writer.RenderBeginTag(HtmlTextWriterTag.A);
                    writer.AddAttribute("class", "title");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(item.Name);
                    writer.RenderEndTag(); // Span
                    writer.AddAttribute("class", "number");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(item.Number);
                    writer.RenderEndTag(); // Span
                    writer.RenderEndTag(); // A
                    writer.RenderEndTag(); // Li
                }
            }
            litCaseDropdown.Text = sw.ToString();
        }
    }
コード例 #7
0
ファイル: TestCaseWriter.cs プロジェクト: pawelkmiec/syringe
        public string Write(CaseCollection caseCollection)
        {
            var stringBuilder = new StringBuilder();
            using (var stringWriter = new Utf8StringWriter(stringBuilder))
            {
                var settings = new XmlWriterSettings
                {
                    IndentChars = "\t",
                    Indent = true
                };

                using (XmlWriter xmlWriter = XmlTextWriter.Create(stringWriter, settings))
                {

                    XElement testCasesElement = new XElement("testcases");
                    testCasesElement.Add(new XAttribute("repeat", caseCollection.Repeat.ToString()));

                    foreach (Case testCase in caseCollection.TestCases)
                    {
                        XElement headersElement = GetHeadersElement(testCase);
                        XElement postbodyElement = GetPostBodyElement(testCase);
                        XElement parseResponsesElement = GetParseResponsesElement(testCase);
                        XElement verificationElement = GetVerificationElement(testCase);

                        XElement caseElement = GetCaseElement(testCase);
                        caseElement.Add(headersElement);
                        caseElement.Add(postbodyElement);
                        caseElement.Add(parseResponsesElement);
                        caseElement.Add(verificationElement);

                        testCasesElement.Add(caseElement);
                    }

                    XDocument doc = new XDocument(testCasesElement);
                    doc.WriteTo(xmlWriter);
                }

                return stringBuilder.ToString();
            }
        }
コード例 #8
0
        protected void SetCaseObjects <TCase, TCollection>(TCollection value)
            where TCase : CaseObjectBase
            where TCollection : List <TCase>
        {
            if (value != null)
            {
                var result = new CaseCollection(value.Count);
                foreach (var itemObject in value)
                {
                    var item = new Case();
                    item.Min  = itemObject.Min;
                    item.Max  = itemObject.Max;
                    item.Item = itemObject.Item;
                    result.Add(item);
                }

                Cases = result;
            }
            else
            {
                Cases = null;
            }
        }
コード例 #9
0
        private CaseCollection CreateCaseCollection(Case[] cases)
        {
            var testCases = new List<Case>();
            testCases.AddRange(cases);

            var collection = new CaseCollection();
            collection.TestCases = testCases;

            return collection;
        }
コード例 #10
0
 public HomeController(IUserContext usercontext, ICaseContext caseContext, IAdminUserContext adminUserContext)
 {
     serverUserCollection = new AdminUserCollection(adminUserContext);
     Case           = new Logic.Case(caseContext);
     CaseCollection = new CaseCollection(caseContext);
 }
コード例 #11
0
 public SwitchExtension()
 {
     Cases     = new CaseCollection(this);
     Converter = new MultiValueConverter(this);
 }
コード例 #12
0
        public TestCaseSession Run(CaseCollection testCollection)
        {
            _isStopPending = false;
            _currentResults = new List<TestCaseResult>();

            var session = new TestCaseSession();
            session.StartTime = DateTime.UtcNow;

            // Add all config variables and ones in this <testcase>
            var variables = new SessionVariables();
            variables.AddGlobalVariables(_config);
            variables.AddOrUpdateVariables(testCollection.Variables);

            var verificationsMatcher = new VerificationsMatcher(variables);

            // Ensure we loop atleast once:
            int repeatTotal = (testCollection.Repeat > 0) ? testCollection.Repeat : 1;
            List<Case> testCases = testCollection.TestCases.ToList();

            TimeSpan minResponseTime = TimeSpan.MaxValue;
            TimeSpan maxResponseTime = TimeSpan.MinValue;
            int totalCasesRun = 0;

            CasesRun = 0;
            TotalCases = testCases.Count;
            RepeatCount = 0;

            for (int i = 0; i < repeatTotal; i++)
            {
                foreach (Case testCase in testCases)
                {
                    if (_isStopPending)
                        break;

                    try
                    {
                        TestCaseResult result = RunCase(testCase, variables, verificationsMatcher);
                        session.TestCaseResults.Add(result);
                        _currentResults.Add(result);

                        if (result.ResponseTime < minResponseTime)
                            minResponseTime = result.ResponseTime;

                        if (result.ResponseTime > maxResponseTime)
                            maxResponseTime = result.ResponseTime;
                    }
                    catch (Exception ex)
                    {
                        Log.Error(ex, "An exception occurred running case {0}", testCase.Id);
                    }
                    finally
                    {
                        totalCasesRun++;

                        CasesRun++;
                        RepeatCount = i;
                    }
                }

                if (_isStopPending)
                    break;
            }

            session.EndTime = DateTime.UtcNow;
            session.TotalRunTime = session.EndTime - session.StartTime;
            session.TotalCasesRun = totalCasesRun;
            session.MinResponseTime = minResponseTime;
            session.MaxResponseTime = maxResponseTime;

            return session;
        }