Beispiel #1
0
        public void TestCaseAttributesTest()
        {
            var evt     = new TestCaseStartedEvent("1", "testcase with title");
            var manager = new AttributeManager(new List <Attribute>
            {
                new AllureTitleAttribute("Awesome title"),
                new AllureDescriptionAttribute("Awesome description", descriptiontype.text),
                new AllureSeverityAttribute(severitylevel.critical),
                new AllureFeaturesAttribute("Awesome feature", "Another awesome feature", "Awesome feature2", "New awesome feature"),
                new AllureStoriesAttribute("Awesome story", "Another awesome story", "Awesome story2", "New awesome story")
            });

            manager.Update(evt);
            Assert.AreEqual("Awesome title", evt.Title);
            Assert.AreEqual("Awesome description", evt.Description.Value);
            Assert.AreEqual(descriptiontype.text, evt.Description.type);
            Assert.AreEqual("severity", evt.Labels[0].name);
            Assert.AreEqual("critical", evt.Labels[0].value);
            Assert.AreEqual("feature", evt.Labels[1].name);
            Assert.AreEqual("Awesome feature", evt.Labels[1].value);
            Assert.AreEqual("feature", evt.Labels[2].name);
            Assert.AreEqual("Another awesome feature", evt.Labels[2].value);
            Assert.AreEqual("feature", evt.Labels[3].name);
            Assert.AreEqual("Awesome feature2", evt.Labels[3].value);
            Assert.AreEqual("feature", evt.Labels[4].name);
            Assert.AreEqual("New awesome feature", evt.Labels[4].value);
            Assert.AreEqual("story", evt.Labels[5].name);
            Assert.AreEqual("Awesome story", evt.Labels[5].value);
            Assert.AreEqual("story", evt.Labels[6].name);
            Assert.AreEqual("Another awesome story", evt.Labels[6].value);
            Assert.AreEqual("story", evt.Labels[7].name);
            Assert.AreEqual("Awesome story2", evt.Labels[7].value);
            Assert.AreEqual("story", evt.Labels[8].name);
            Assert.AreEqual("New awesome story", evt.Labels[8].value);
        }
        public ServiceResult Update(TMG.Attribute s)
        {
            if (s == null)
            {
                return(ServiceResponse.Error("Invalid TMG.Attribute sent to server."));
            }

            AttributeManager AttributeManager = new AttributeManager(Globals.DBConnectionKey, this.GetAuthToken(Request));
            var res = AttributeManager.Get(s.UUID);

            if (res.Code != 200)
            {
                return(res);
            }
            var dbS = (TMG.Attribute)res.Result;

            if (dbS.DateCreated == DateTime.MinValue)
            {
                dbS.DateCreated = DateTime.Now;
            }

            dbS.Deleted       = s.Deleted;
            dbS.Name          = s.Name;
            dbS.Status        = s.Status;
            dbS.SortOrder     = s.SortOrder;
            dbS.Image         = s.Image;
            dbS.ReferenceType = s.ReferenceType;
            dbS.ReferenceUUID = s.ReferenceUUID;
            dbS.Value         = s.Value;
            dbS.ValueType     = s.ValueType;
            dbS.SafeName      = s.SafeName;
            dbS.Deleted       = s.Deleted;
            dbS.Active        = s.Active;
            return(AttributeManager.Update(dbS));
        }
Beispiel #3
0
        public override void SuiteStarted(TestName testName)
        {
            try
            {
                string assembly = testName.FullName.Split('.')[0];
                string clazz    = testName.FullName.Split('.')[testName.FullName.Split('.').Count() - 1];

                string suiteUid = Guid.NewGuid().ToString();
                var    evt      = new TestSuiteStartedEvent(suiteUid, testName.FullName);

                foreach (
                    Assembly asm in AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains(assembly)))
                {
                    foreach (Type type in asm.GetTypes().Where(x => x.Name.Contains(clazz)))
                    {
                        var manager = new AttributeManager(type.GetCustomAttributes(false).OfType <Attribute>().ToList());
                        manager.Update(evt);

                        SuiteStorage.Add(testName.FullName, suiteUid);

                        _lifecycle.Fire(evt);

                        return;
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(String.Format("Exception in SuiteStarted \"{0}\"", testName), e);
            }
        }
Beispiel #4
0
        public void TestSuiteSeverityAttributeTest()
        {
            var evt     = new TestSuiteStartedEvent("1", "testsuite with severity");
            var manager = new AttributeManager(new List <Attribute>
            {
                new AllureSeverityAttribute(severitylevel.critical)
            });

            manager.Update(evt);
            Assert.IsNull(evt.Labels);
        }
Beispiel #5
0
        public void TestCaseTitleAttributeTest()
        {
            var evt     = new TestCaseStartedEvent("1", "testcase with title");
            var manager = new AttributeManager(new List <Attribute>
            {
                new AllureTitleAttribute("Awesome title")
            });

            manager.Update(evt);
            Assert.AreEqual("Awesome title", evt.Title);
        }
Beispiel #6
0
        public void TestCaseStroiesAttributeTest()
        {
            var evt     = new TestCaseStartedEvent("1", "testcase with title");
            var manager = new AttributeManager(new List <Attribute>
            {
                new AllureStoriesAttribute("Awesome story")
            });

            manager.Update(evt);
            Assert.AreEqual("story", evt.Labels[0].name);
            Assert.AreEqual("Awesome story", evt.Labels[0].value);
        }
Beispiel #7
0
        public void TestCaseSeverityAttributeTest()
        {
            var evt     = new TestCaseStartedEvent("1", "testcase with severity");
            var manager = new AttributeManager(new List <Attribute>
            {
                new AllureSeverityAttribute(severitylevel.critical)
            });

            manager.Update(evt);
            Assert.AreEqual("severity", evt.Labels[0].name);
            Assert.AreEqual("critical", evt.Labels[0].value);
        }
Beispiel #8
0
        public void TestCaseDescriptionAttributeTest()
        {
            var evt     = new TestCaseStartedEvent("1", "testcase with description");
            var manager = new AttributeManager(new List <Attribute>
            {
                new AllureDescriptionAttribute("Awesome description", descriptiontype.text)
            });

            manager.Update(evt);
            Assert.AreEqual("Awesome description", evt.Description.Value);
            Assert.AreEqual(descriptiontype.text, evt.Description.type);
        }
Beispiel #9
0
        public void TestSuiteFeaturesAttributeTest()
        {
            var evt     = new TestSuiteStartedEvent("1", "testsuite with title");
            var manager = new AttributeManager(new List <Attribute>
            {
                new AllureFeaturesAttribute("Awesome feature")
            });

            manager.Update(evt);
            Assert.AreEqual("feature", evt.Labels[0].name);
            Assert.AreEqual("Awesome feature", evt.Labels[0].value);
        }
        public ServiceResult BulkUpdate()
        {
            ServiceResult    res = new ServiceResult();
            AttributeManager AttributeManager = new AttributeManager(Globals.DBConnectionKey, this.GetAuthToken(Request));

            try
            {
                Task <string> content = Request.Content.ReadAsStringAsync();
                if (content == null)
                {
                    return(ServiceResponse.Error("No users were sent."));
                }

                string body = content.Result;

                if (string.IsNullOrEmpty(body))
                {
                    return(ServiceResponse.Error("No users were sent."));
                }

                List <TMG.Attribute> attributes = JsonConvert.DeserializeObject <List <TMG.Attribute> >(body);



                foreach (var att in attributes)
                {
                    if (att.Status == "new")
                    {
                        AttributeManager.Insert(att);
                    }
                    else
                    {
                        AttributeManager.Update(att); // todo more checks
                    }
                }

                return(ServiceResponse.OK("", attributes));
            }
            catch (Exception ex)
            {
                Debug.Assert(false, ex.Message);
                return(ServiceResponse.Error(ex.Message));
            }
        }
Beispiel #11
0
        public ServiceResult Update(INode n)
        {
            if (n == null)
            {
                return(ServiceResponse.Error("Invalid Post data."));
            }

            if (!this.DataAccessAuthorized(n, "PATCH", false))
            {
                return(ServiceResponse.Error("You are not authorized this action."));
            }

            Post s = (Post)n;

            if (s.Status.EqualsIgnoreCase(PostFlags.Status.Publish))
            {
                if (s.PublishDate == DateTime.MinValue)
                {
                    s.PublishDate = DateTime.UtcNow;
                }

                if (_requestingUser.RoleWeight < RoleFlags.MemberRoleWeights.Manager && _requestingUser.SiteAdmin == false)
                {
                    s.Status += PostFlags.Status.Moderate;
                }
            }

            using (var context = new GreenWerxDbContext(this._connectionKey))
            {
                if (context.Update <Post>(s) > 0)
                {
                    AttributeManager am = new AttributeManager(this._connectionKey, this.SessionKey);
                    foreach (var att in s.Attributes)// todo make all these transactions
                    {
                        am.Update(att);
                    }

                    return(ServiceResponse.OK());
                }
            }
            return(ServiceResponse.Error("System error, Post was not updated."));
        }
Beispiel #12
0
        public override void TestStarted(TestName testName)
        {
            try
            {
                string assembly = testName.FullName.Split('.')[0];
                string clazz    = testName.FullName.Split('(')[0].Split('.')[testName.FullName.Split('(')[0].Split('.').Count() - 2];

                var evt = new TestCaseStartedEvent((string)SuiteStorage[SuiteStorage.Count - 1], testName.FullName);

                foreach (
                    Assembly asm in AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains(assembly)))
                {
                    foreach (Type type in asm.GetTypes().Where(x => x.Name.Contains(clazz)))
                    {
                        string name = !testName.Name.Contains("(")
                            ? testName.Name
                            : testName.Name.Substring(0, testName.Name.IndexOf('('));

                        MethodInfo methodInfo = type.GetMethod(name);
                        if (methodInfo == null)
                        {
                            continue;
                        }
                        var manager =
                            new AttributeManager(methodInfo.GetCustomAttributes(false).OfType <Attribute>().ToList());
                        manager.Update(evt);
                    }
                }

                _lifecycle.Fire(evt);
            }
            catch (Exception e)
            {
                Logger.Error(String.Format("Exception in TestStarted {0}", testName), e);
            }
        }
Beispiel #13
0
        public void OnTestEvent(string report)
        {
            Logger.Info($"{report}");

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(report);
            var eventType = xmlDoc.DocumentElement;

            using (StreamWriter file =
                       new StreamWriter("WriteLines2.txt", true))
            {
                file.WriteLine(report);
            }
            switch (eventType.Name)
            {
            case "start-suite":
                //Console.WriteLine($"***test-run started: {eventType.InnerText}");
                var suiteFullName = eventType.GetAttribute("name");
                //var suiteFullName = eventType.GetAttribute("fullname");
                //var suiteID = eventType.GetAttribute("id");
                string suiteUid = Guid.NewGuid().ToString();

                string assembly = suiteFullName.Split('.')[0];
                string clazz    = suiteFullName.Split('.')[suiteFullName.Split('.').Length - 1];

                var testSuiteStartedEvt = new TestSuiteStartedEvent(suiteUid, suiteFullName);

                foreach (
                    Assembly asm in AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains(assembly)))
                {
                    foreach (Type type in asm.GetTypes().Where(x => x.Name.Contains(clazz)))
                    {
                        var manager = new AttributeManager(type.GetCustomAttributes(false).OfType <Attribute>().ToList());
                        manager.Update(testSuiteStartedEvt);
                    }
                }
                Logger.Info($"Adding suite '{suiteFullName}' with '{suiteUid}' to SuiteStorage");
                SuiteStorage.Add(suiteFullName, suiteUid);
                _lifecycle.Fire(testSuiteStartedEvt);
                break;

            case "start-test":

                try
                {
                    //Console.WriteLine($"***test started: {eventType.GetAttribute("name")}, id: {eventType.GetAttribute("id")}, parentId: {eventType.GetAttribute("parentId")}");
                    var testFullName = eventType.GetAttribute("fullname");
                    var testName     = eventType.GetAttribute("name");


                    string assembly2 = testFullName.Split('.')[0];
                    string clazz2    = testFullName.Split('(')[0].Split('.')[testFullName.Split('(')[0].Split('.').Count() - 2];

                    var testStartedEvt = new TestCaseStartedEvent((string)SuiteStorage[SuiteStorage.Count - 1], testFullName);

                    foreach (
                        Assembly asm in AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains(assembly2)))
                    {
                        foreach (Type type in asm.GetTypes().Where(x => x.Name.Contains(clazz2)))
                        {
                            string name = !testName.Contains("(")
                                    ? testName
                                    : testName.Substring(0, testName.IndexOf('('));

                            MethodInfo methodInfo = type.GetMethod(name);
                            if (methodInfo == null)
                            {
                                continue;
                            }
                            var manager =
                                new AttributeManager(methodInfo.GetCustomAttributes(false).OfType <Attribute>().ToList());
                            manager.Update(testStartedEvt);
                        }
                    }

                    _lifecycle.Fire(testStartedEvt);
                }
                catch (Exception ex)
                {
                    Logger.Error($"{ex.Message} - {ex.StackTrace}");
                }



                break;

            case "test-case":
                switch (eventType.GetAttribute("result"))
                {
                case "Passed":
                    Logger.Info($"Test Passed: {eventType.GetAttribute("name")}");
                    var testFinishedEvt = new TestCaseFinishedEvent();
                    _lifecycle.Fire(testFinishedEvt);
                    break;

                case "Failed":
                {
                    Logger.Info($"Test Failed: {eventType.GetAttribute("name")}");
                    try
                    {
                        _lifecycle.Fire(new TestCaseFailureEvent
                            {
                                Throwable  = new Exception(eventType["failure"]?["message"]?.InnerText),
                                StackTrace = eventType["failure"]?["stack-trace"]?.InnerText
                            });
                        _lifecycle.Fire(new TestCaseFinishedEvent());
                    }
                    catch (Exception ex)
                    {
                        Logger.Error($"{ex.Message} - {ex.StackTrace}");
                    }
                }
                break;
                }
                break;

            case "test-suite":
                var suiteFullName2      = eventType.GetAttribute("name");
                var suiteUidFromStorage = (string)SuiteStorage[suiteFullName2];
                if (suiteUidFromStorage != null)
                {
                    var testSuiteFinishedEvt = new TestSuiteFinishedEvent(suiteUidFromStorage);
                    try
                    {
                        _lifecycle.Fire(testSuiteFinishedEvt);
                    }
                    catch (Exception ex)
                    {
                        Logger.Error($"{ex.Message} - {ex.StackTrace}");
                    }

                    SuiteStorage.Remove(suiteFullName2);
                }
                else
                {
                    Logger.Warn($"{suiteFullName2} - suite not present in storage");
                }
                break;

            default:

                break;
            }
        }