Ejemplo n.º 1
0
        public void StepStorageTest()
        {
            var storage = new StepStorage();
            var step1   = new step();
            var step2   = new step();
            var step3   = new step();

            storage.Put(step1);
            Assert.AreEqual(2, storage.Get().Count);
            Assert.AreEqual(step1, storage.Last);

            new Thread(() =>
            {
                storage.Put(step2);
                Thread.Sleep(100);
                Assert.AreEqual(2, storage.Get().Count);
                Assert.AreEqual(step2, storage.Last);
            }).Start();

            new Thread(() =>
            {
                storage.Put(step3);
                Assert.AreEqual(2, storage.Get().Count);
                Assert.AreEqual(step3, storage.Last);
            }).Start();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Processes all testcase events.
        /// <see cref="AllureCSharpCommons.Events.TestCaseStartedEvent"/>
        /// <see cref="AllureCSharpCommons.Events.TestCasePendingEvent"/>
        /// <see cref="AllureCSharpCommons.Events.TestCaseCanceledEvent"/>
        /// <see cref="AllureCSharpCommons.Events.TestCaseFinishedEvent"/>
        /// </summary>
        /// <param name="evt">event to process</param>
        public void Fire(ITestCaseEvent evt)
        {
            if (typeof(TestCaseStartedEvent).IsAssignableFrom(evt.GetType()))
            {
                StepStorage.Get();

                var testcaseresult = TestCaseStorage.Get();
                evt.Process(testcaseresult);

                lock (TestSuiteAddChildLock)
                {
                    TestSuiteStorage.Put(evt.SuiteUid);
                    TestSuiteStorage.Get(evt.SuiteUid).testcases =
                        ArraysUtils.Add(TestSuiteStorage.Get(evt.SuiteUid).testcases, testcaseresult);
                }
            }
            else if (typeof(TestCaseFinishedEvent).IsAssignableFrom(evt.GetType()))
            {
                var testcaseresult = TestCaseStorage.Get();
                evt.Process(testcaseresult);

                var root = StepStorage.PollLast();

                testcaseresult.steps       = ArraysUtils.AddAll(testcaseresult.steps, root.steps);
                testcaseresult.attachments = ArraysUtils.AddAll(testcaseresult.attachments, root.attachments);
                StepStorage.Remove();
                TestCaseStorage.Remove();
            }
            else
            {
                var testcaseresult = TestCaseStorage.Get();
                evt.Process(testcaseresult);
            }
        }