示例#1
0
        public void SendMessage(TechTalk talk)
        {
            Console.WriteLine("Inside send message");

            var factory = new ConnectionFactory()
            {
                HostName = "rabbitmq"
            };

            Console.WriteLine("Inside connection factory");

            using (var connection = factory.CreateConnection())
            {
                Console.WriteLine("Inside connection");

                using (var channel = connection.CreateModel())
                {
                    Console.WriteLine("Inside model");
                    channel.ExchangeDeclare(exchangeName, "fanout");

                    var body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(talk));

                    channel.BasicPublish(exchange: exchangeName,
                                         routingKey: routingKey,
                                         basicProperties: null,
                                         body: body);
                    Console.WriteLine(" [x] Sent {0}", talk);
                }
            }
        }
 public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo)
 {
     testRunner.OnScenarioStart(scenarioInfo);
     if(this.driver != null)
         ScenarioContext.Current.Add("Driver", this.driver);
     this.sauceRest = new SauceRest("user_name", "access_key", "https://saucelabs.com/rest/v1");
 }
示例#3
0
 public void ThenTheNewlyCreatedTaskIsDisplayedInTheList(TechTalk.SpecFlow.Table table)
 {
     foreach (var tableRow in table.Rows)
     {
         Assert.IsTrue(WebBrowser.Current.ContainsText(tableRow["Value"]));
     }
 }
        public void WhenIAdoptForThesePets(TechTalk.SpecFlow.Table petNames)
        {
            IWebDriver driver = ScenarioContext.Current["driver"] as IWebDriver;

            for (int i = 0; i < petNames.RowCount; i++)
            {
                ReadOnlyCollection<IWebElement> nameLabels = driver.FindElements(By.ClassName("name"));
                ReadOnlyCollection<IWebElement> viewDetailsButtons = driver.FindElements(By.XPath("//input[@value='View Details']"));

                var petName = petNames.Rows[i][0];
                Console.WriteLine("taking care of " + petName);
                for (int j = 0; j < nameLabels.Count; j++)
                {
                    if (nameLabels[j].Text == petName)
                    {
                        Console.WriteLine("FOUND: " + petName);
                        viewDetailsButtons[j].Click();
                        IWebElement adoptMeButton = driver.FindElement(By.XPath("//input[@value='Adopt Me!']"));
                        adoptMeButton.Click();
                        if (petNames.RowCount == i + 1)
                        {
                            IWebElement completeTheAdoptionButton = driver.FindElement(By.XPath("//input[@value='Complete the Adoption']"));
                            completeTheAdoptionButton.Click();
                        }
                        else
                        {
                            IWebElement adoptAnotherButton = driver.FindElement(By.XPath("//input[@value='Adopt Another Puppy']"));
                            adoptAnotherButton.Click();
                        }
                        break;
                    }
                }

            }
        }
 public void ThenIShouldSeeTheFollowingData(TechTalk.SpecFlow.Table table)
 {
     foreach (var header in table.Header)
     {
         Assert.AreEqual(_browser.Element(header).Text, table.Rows[0][header]);
     }
 }
示例#6
0
        public IActionResult Create([FromBody] TechTalk techTalk)
        {
            if (techTalk == null)
            {
                return(BadRequest());
            }

            Console.WriteLine("Saving Tech talk to database.");

            Console.WriteLine($"Tech Talk Id : {techTalk.Id}");
            Console.WriteLine($"Tech Talk Name : {techTalk.TechTalkName}");
            Console.WriteLine($"Category : {techTalk.CategoryId}");
            Console.WriteLine($"Level : {techTalk.LevelId}");

            try
            {
                _context.TechTalk.Add(techTalk);
                _context.Entry(techTalk.Category).State = EntityState.Unchanged;
                _context.Entry(techTalk.Level).State    = EntityState.Unchanged;
                _context.SaveChanges();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Inside exception block");
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.InnerException);
            }


            return(Ok());
        }
示例#7
0
        public IActionResult Create([FromBody] TechTalkVM techTalkVm)
        {
            if (techTalkVm == null)
            {
                return(BadRequest());
            }

            TechTalk techTalk = new TechTalk
            {
                TechTalkName = techTalkVm.TechTalkName,
                CategoryId   = techTalkVm.CategoryId,
                Category     = _context.Categories.FirstOrDefault(x => x.Id == techTalkVm.CategoryId),
                LevelId      = techTalkVm.LevelId,
                Level        = _context.Levels.FirstOrDefault(x => x.Id == techTalkVm.LevelId)
            };

            try
            {
                _context.TechTalk.Add(techTalk);
                _context.Entry(techTalk.Category ?? throw new InvalidOperationException()).State = EntityState.Unchanged;
                _context.Entry(techTalk.Level ?? throw new InvalidOperationException()).State    = EntityState.Unchanged;
                _context.SaveChanges();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Exception Occured : {ex.Message} - inner exception:- {ex.InnerException}");
            }


            return(Ok());
        }
        public void GivenIAmRegisteredWithTheFollowingData(TechTalk.SpecFlow.Table table)
        {
            var tableSerialized = new SerializableTable(table);
            username = tableSerialized.Rows[0]["email"];
            password = tableSerialized.Rows[0]["password"];
            //mobile = tableSerialized.Rows[0]["mobile"];
            //gender = tableSerialized.Rows[0]["gender"];

            Deleporter.Run(() =>
            {
                var mockRepository = new Mock<IRegisterRepository>();
                mockRepository.Setup(x => x.Get(tableSerialized.Rows[0]["email"]))
                    .Returns((from row in tableSerialized.Rows
                              select new RegisterEntry
                              {
                                  Name = tableSerialized.Rows[0]["name"],
                                  Password = tableSerialized.Rows[0]["password"],
                                  Email = tableSerialized.Rows[0]["email"],
                                  Mobile = tableSerialized.Rows[0]["mobile"],
                                  Gender = Convert.ToChar(tableSerialized.Rows[0]["gender"][0]),
                                  Activated = tableSerialized.Rows[0]["activated"] == "yes" ? true : false
                              }).ToList()[0]);
                NinjectControllerFactoryUtils.TemporarilyReplaceBinding<IRegisterRepository>(mockRepository.Object);
            });
            //ScenarioContext.Current.Pending();
        }
 public void GivenIFillInTheFormAsFollows(TechTalk.SpecFlow.Table table)
 {
     foreach (var row in table.Rows) {
         var labelText = row["Label"];
         var value = row["Value"];
         WebBrowser.Current.TextFields.First(Find.ByLabelText(labelText)).TypeText(value);
     }
 }
示例#10
0
 public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo)
 {
     testRunner.OnScenarioStart(scenarioInfo);
     if(this.driver != null)
         ScenarioContext.Current.Add("Driver", this.driver);
     if(this.container != null)
         ScenarioContext.Current.Add("Container", this.container);
 }
示例#11
0
 public void GivenIHaveFilledOutTheFormAsFollows(TechTalk.SpecFlow.Table table)
 {
     foreach (var row in table.Rows)
     {
         var labelText = row["Label"] + ":";
         var value = row["Value"];
         _browser.TextFields.First(Find.ByLabelText(labelText)).TypeText(value);
     }
 }
 public void WhenIAdoptForThesePets(TechTalk.SpecFlow.Table petNames)
 {
     for (int i = 0; i < petNames.RowCount; i++)
     {
         var petName = petNames.Rows[i][0];
         Console.WriteLine("Adopting " + petName);
         adoptingSteps.adopt_a_pet(petName, petNames.RowCount == i + 1);
     }
 }
示例#13
0
        public void ShouldShowFollowingErrorMessages(TechTalk.SpecFlow.Table table)
        {
            IWebElement element;

            foreach (TechTalk.SpecFlow.TableRow row in table.Rows)
            {
                element = BrowserUtility.Browser.FindElementWithWait(By.CssSelector("span[data-valmsg-for='" + row["id"] + "']"));
                element.Text.Should().Be(row["value"]);
            }
        }
        public void TheGeneralRiskAssessmentsTableShouldNotContainTheFollowingData(string type, TechTalk.SpecFlow.Table table)
        {
            var searchResultsTable = WebBrowser.Current.Tables.First();
            Assert.AreEqual(table.Rows.Count, searchResultsTable.TableRows.Count());

            foreach (var row in table.Rows)
            {
                Assert.Null(searchResultsTable.FindRow(row["Reference"], 0));
            }
        }
示例#15
0
        public void FillFieldsWithFollowingData(TechTalk.SpecFlow.Table table)
        {
            IWebElement element;

            foreach (TechTalk.SpecFlow.TableRow row in table.Rows)
            {
                element = BrowserUtility.Browser.FindElementWithWait(By.CssSelector("input[id='" + row["id"] + "']"));
                element.SendKeys(row["value"]);
            }
        }
示例#16
0
        public void GivenIHaveEnteredValidDataInTheFormFields(TechTalk.SpecFlow.Table table)
        {
            foreach (var tableRow in table.Rows)
            {
                var field = WebBrowser.Current.TextField(Find.ByName(tableRow["Field"]));
                if (!field.Exists)
                    Assert.Fail(String.Format("Could not find {0} field on page", field));

                field.TypeText(tableRow["Value"]);
            }
        }
示例#17
0
 public void WhenIFillInTheUserForm(TechTalk.SpecFlow.Table table)
 {
     Thread.Sleep(2500);
     HostUserPage.UserNameField.Value = table.Rows[0]["Value"];
     HostUserPage.FirstNameField.Value = table.Rows[1]["Value"];
     HostUserPage.LastNameField.Value = table.Rows[2]["Value"];
     HostUserPage.DisplayNameField.Value = table.Rows[3]["Value"];
     HostUserPage.EmailField.Value = table.Rows[4]["Value"];
     HostUserPage.PasswordField.Value = table.Rows[5]["Value"];
     HostUserPage.ConfirmPasswordField.Value = table.Rows[5]["Value"];
 }
示例#18
0
 public void WtedyMamyWyswietlonaListeWszystkichAlertow(TechTalk.SpecFlow.Table table)
 {
     foreach(var row in table.Rows)
     {
         var element = WebBrowser.Current.ElementWithTag("dt", Find.ByText(row["name"]));
         if (!element.Exists)
         {
             Assert.Fail("Lista nie zawiera alertu o nazwie '{0}'", row["name"]);
         }
     }
 }
示例#19
0
        public void EntaoOSeguinteFormularioDeveSerExibido(TechTalk.SpecFlow.Table campos)
        {
            foreach (var campo in campos.Rows)
            {
                var nomeCampo = campo["Rótulo"];

                var textField = WebBrowser.Current.TextField(Find.ByName(nomeCampo));
                Assert.IsTrue(textField.Exists,
                  string.Format(
                    "Não foi possível encontrar o campo {0} na página", nomeCampo));
            }
        }
        public void WhenEuPreenchoOFormularioComOsSeguintesCampos(TechTalk.SpecFlow.Table table)
        {
            foreach (var tableRow in table.Rows)
            {
                var field = WeBrowser.Current.ElementOfType<TextFieldExtended>(tableRow["Field"]);
                if(!field.Exists)
                    Assert.Fail(String.Format("Não encontrado campo {0} na página", field));

                string value = String.Format("{0}{1}", tableRow["Value"], new Random().Next(1000).ToString());
                field.TypeText(value);
            }
        }
        public void ThenTheAddedDocumentResultsTableShouldContainTheFollowingData(TechTalk.SpecFlow.Table table)
        {
            var searchResultsTable = WebBrowser.Current.Tables.First();
            Assert.AreEqual(table.Rows.Count, searchResultsTable.TableRows.Length);
            int titleColumnIndex = 1;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                string title = table.Rows[i]["Title"];

                Assert.AreEqual(title, searchResultsTable.TableRows[i].TableCells[titleColumnIndex].Text);
            }
        } 
        public void WhenIFillInTheProfilePropertyForm(TechTalk.SpecFlow.Table table)
        {
            ProfilePropertiesPage.PropertyNameField.Value = table.Rows[0]["Value"];

            ListEntryInfo dataType = new ListController().GetListEntryInfo("DataType", table.Rows[1]["Value"]);
            ProfilePropertiesPage.DataTypeSelectList.SelectByValue(dataType.EntryID.ToString(CultureInfo.InvariantCulture));

            ProfilePropertiesPage.PropertyCategoryField.Value = table.Rows[2]["Value"];
            ProfilePropertiesPage.LengthTextField.Value = table.Rows[3]["Value"];
            ProfilePropertiesPage.RequiredCheckBox.Checked = Boolean.Parse(table.Rows[4]["Value"]);
            ProfilePropertiesPage.VisibleCheckBox.Checked = Boolean.Parse(table.Rows[5]["Value"]);
            ProfilePropertiesPage.ReadOnlyCheckBox.Checked = Boolean.Parse(table.Rows[6]["Value"]);
        }
示例#23
0
        private void LogTechTalkDetails(TechTalk techTalk)
        {
            Console.WriteLine();
            Console.WriteLine("----------");
            Console.WriteLine($"Tech Talk Id : {techTalk.Id}");
            Console.WriteLine($"Tech Talk Name : {techTalk.TechTalkName}");
            Console.WriteLine($"Category : {techTalk.CategoryId}");
            Console.WriteLine($"Level : {techTalk.LevelId}");
            Console.WriteLine("----------");
            Console.WriteLine();

            Console.WriteLine($"TechTalk persisted successfully at {DateTime.Now.ToLongTimeString()}");
        }
        public void GivenWeHaveTheFollowingRiskAssessors(TechTalk.SpecFlow.Table table)
        {
            const string insertSql = "INSERT INTO [BusinessSafe].[dbo].[RiskAssessor] (" +
                                     "[EmployeeId], " +
                                     "[HasAccessToAllSites], " +
                                     "[SiteId], " +
                                     "[DoNotSendTaskOverdueNotifications], " +
                                     "[DoNotSendTaskCompletedNotifications], " +
                                     "[DoNotSendReviewDueNotification], " +
                                     "[CreatedBy], " +
                                     "[CreatedOn], " +
                                     "[LastModifiedBy], " +
                                     "[LastModifiedOn], " +
                                     "[Deleted] ) " +
                                     "VALUES (" +
                                     ":EmployeeId, " +
                                     ":HasAccessToAllSites, " +
                                     ":SiteId, " +
                                     ":DoNotSendTaskOverdueNotifications, " +
                                     ":DoNotSendTaskCompletedNotifications, " +
                                     ":DoNotSendReviewDueNotification, " +
                                     ":CreatedBy, " +
                                     ":CreatedOn, " +
                                     ":LastModifiedBy, " +
                                     ":LastModifiedOn, " +
                                     ":Deleted ) ";

            var session = ObjectFactory.GetInstance<IBusinessSafeSessionFactory>().GetSession();

            foreach (var row in table.Rows)
            {
                session
                   .CreateSQLQuery(insertSql)
                   .SetParameter("EmployeeId", row["EmployeeId"])
                   .SetParameter("HasAccessToAllSites", row["HasAccessToAllSites"])
                   .SetParameter("SiteId", row["SiteId"])
                   .SetParameter("DoNotSendTaskOverdueNotifications", row["DoNotSendTaskOverdueNotifications"])
                   .SetParameter("DoNotSendTaskCompletedNotifications", row["DoNotSendTaskCompletedNotifications"])
                   .SetParameter("DoNotSendReviewDueNotification", row["DoNotSendReviewDueNotification"])
                   .SetParameter("CreatedBy", new Guid("16ac58fb-4ea4-4482-ac3d-000d607af67c"))
                   .SetParameter("CreatedOn", DateTime.Now)
                   .SetParameter("LastModifiedBy", new Guid("16ac58fb-4ea4-4482-ac3d-000d607af67c"))
                   .SetParameter("LastModifiedOn", DateTime.Now)
                   .SetParameter("Deleted", row["Deleted"])
                   .UniqueResult<long>();

                session.Flush();
            }
        }
        public override void SetTestClass(TechTalk.SpecFlow.Generator.TestClassGenerationContext generationContext, string featureTitle, string featureDescription)
        {
            base.SetTestClass(generationContext, featureTitle, featureDescription);

            foreach(CodeAttributeDeclaration customAttribute in generationContext.TestClass.CustomAttributes)
            {
                if(customAttribute.Name == "Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute")
                {
                    generationContext.TestClass.CustomAttributes.Remove(customAttribute);
                    break;
                }
            }

            generationContext.TestClass.CustomAttributes.Add(new CodeAttributeDeclaration(new CodeTypeReference("Microsoft.VisualStudio.TestTools.UITesting.CodedUITestAttribute")));
        }
示例#26
0
        public static object CreateItem(string type, TechTalk.SpecFlow.Table data = null)
        {
            object item = null;

            var qualified = GetType(type);
            if (qualified != null)
            {
                item = Activator.CreateInstance(qualified);
                var details = data.ToDictionary();

                if (data != null)
                    item = PopulateItem(details, item);
            }

            return item;
        }
        public void TheFollowingRecordShouldExistInTheAccidentRecordTable(TechTalk.SpecFlow.Table table)
        {
            var form = WebBrowser.Current.Div(Find.ById("AccidentRecordsGrid"));
            var displayedTable = form.Tables.First();
            var foundRow = false;

            for (var i = 0; i < displayedTable.TableRows.Count(); i++)
            {
                if (CheckNthRow(table, i, displayedTable))
                {
                    foundRow = true;
                }
            }

            Assert.IsTrue(foundRow);
        }
        public void TheTaskListShouldContainTheFollowingData(TechTalk.SpecFlow.Table table)
        {
            var form = WebBrowser.Current.Div(Find.ById("ResponsibilitySaveResponsibilityTaskRequestGrid"));
            var displayedTable = form.Tables.First();
           
            
            for (var i = 0; i < table.Rows.Count; i++)
            {
                var taskReference = table.Rows[i]["Task Reference"].Trim();
                Assert.AreEqual(taskReference, displayedTable.TableRows[i].TableCells[1].Text.Trim());

                var taskCategory = table.Rows[i]["Task Category"].Trim();
                Assert.AreEqual(taskCategory, displayedTable.TableRows[i].TableCells[2].Text.Trim());

                var title = table.Rows[i]["Title"].Trim();
                Assert.AreEqual(title, displayedTable.TableRows[i].TableCells[3].Text.Trim());

                var description = table.Rows[i]["Description"].Trim();
                Assert.AreEqual(description, displayedTable.TableRows[i].TableCells[4].Text.Trim());

                var assignedTo = table.Rows[i]["Assigned To"].Trim();
                Assert.AreEqual(assignedTo, displayedTable.TableRows[i].TableCells[5].Text.Trim());

                var createdDate = table.Rows[i]["Created Date"].Trim();
                if (createdDate == "DateTime.Now")
                {
                    createdDate = DateTime.Now.ToString("dd/MM/yyyy");
                    Assert.AreEqual(createdDate, displayedTable.TableRows[i].TableCells[6].Text.Trim());
                }
                else
                {
                    Assert.AreEqual(createdDate, displayedTable.TableRows[i].TableCells[6].Text.Trim());
                }

                var dueDate = table.Rows[i]["Due Date"].Trim();
                Assert.AreEqual(dueDate, displayedTable.TableRows[i].TableCells[7].Text.Trim());

                var status = table.Rows[i]["Status"].Trim();
                Assert.AreEqual(status, displayedTable.TableRows[i].TableCells[8].Text.Trim());
            }

            if (table.Rows.Count != displayedTable.TableRows.Length)
            {
                Assert.Inconclusive(string.Format("The expected number of rows is {0} but the actual count is {1}. This is probably due to an additonal item that has been created in a previous test.", table.Rows.Count, displayedTable.TableRows.Count()));    
            }

        }
示例#29
0
        public void SendMessage(TechTalk talk)
        {
            Console.WriteLine("Inside send message");

            var factory = new ConnectionFactory()
            {
                HostName = "rabbitmq",
                UserName = "******",
                Password = "******"
            };

            Console.WriteLine("Inside connection factory");

            using (var connection = factory.CreateConnection())
            {
                Console.WriteLine("Inside connection");

                using (var channel = connection.CreateModel())
                {
                    Console.WriteLine("Inside model");

                    channel.QueueDeclare(
                        queue: queueName,
                        durable: true,
                        exclusive: false,
                        autoDelete: false,
                        arguments: null
                        );

                    var properties = channel.CreateBasicProperties();
                    properties.Persistent = true;

                    var body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(talk));

                    // for (int i = 0; i < 500; i++)
                    // {
                    channel.BasicPublish(exchange: "",
                                         routingKey: routingKey,
                                         basicProperties: properties,
                                         body: body);

                    Console.WriteLine($"{talk} published successfully");
                    // Console.WriteLine($"{i} Sent {0}", talk);
                    // }
                }
            }
        }
        public void SetRow(TechTalk.SpecFlow.Generator.TestClassGenerationContext generationContext, System.CodeDom.CodeMemberMethod testMethod, IEnumerable<string> arguments, IEnumerable<string> tags, bool isIgnored)
        {
            var args = arguments.Select(
              arg => new CodeAttributeArgument(new CodePrimitiveExpression(arg))).ToList();

            // addressing ReSharper bug: TestCase attribute with empty string[] param causes inconclusive result - https://github.com/techtalk/SpecFlow/issues/116
            var exampleTagExpressionList = tags.Select(t => new CodePrimitiveExpression(t)).ToArray();
            CodeExpression exampleTagsExpression = exampleTagExpressionList.Length == 0 ?
                (CodeExpression)new CodePrimitiveExpression(null) :
                new CodeArrayCreateExpression(typeof(string[]), exampleTagExpressionList);
            args.Add(new CodeAttributeArgument(exampleTagsExpression));

            if (isIgnored)
                args.Add(new CodeAttributeArgument("Ignored", new CodePrimitiveExpression(true)));

            var browsers = testMethod.UserData.Keys.OfType<string>()
                .Where(key => key.StartsWith("Browser:"))
                .Select(key => (string) testMethod.UserData[key]).ToArray();

            if (browsers.Any())
            {
                foreach (var codeAttributeDeclaration in testMethod.CustomAttributes.Cast<CodeAttributeDeclaration>().Where(attr => attr.Name == ROW_ATTR && attr.Arguments.Count == 3).ToList())
                {
                    testMethod.CustomAttributes.Remove(codeAttributeDeclaration);
                }

                foreach (var browser in browsers)
                {
                    var argsString = string.Concat(args.Take(args.Count - 1).Select(arg => string.Format("\"{0}\" ,", ((CodePrimitiveExpression)arg.Value).Value)));
                    argsString = argsString.TrimEnd(' ', ',');

                    var withBrowserArgs = new[] { new CodeAttributeArgument(new CodePrimitiveExpression(browser)) }
                        .Concat(args)
                        .Concat(new [] {
                                new CodeAttributeArgument("Category", new CodePrimitiveExpression(browser)),
                                new CodeAttributeArgument("TestName", new CodePrimitiveExpression(string.Format("{0} on {1} with: {2}", testMethod.Name, browser, argsString)))
                            })
                        .ToArray();

                    this.codeDomHelper.AddAttribute(testMethod, ROW_ATTR, withBrowserArgs);
                }
            }
            else
            {
                this.codeDomHelper.AddAttribute(testMethod, ROW_ATTR, args.ToArray());
            }
        }
示例#31
0
        public void WhenIFillInTheRegisterUserForm(TechTalk.SpecFlow.Table table)
        {
            //delete the user first
            var userName = table.Rows[0]["Value"];
            var testUser = UserController.GetUserByName(0, userName);
            if(testUser != null)
            {
                UserController.RemoveUser(testUser);
            }

            Thread.Sleep(3500);
            RegisterPage.UserNameField.Value = table.Rows[0]["Value"];
            RegisterPage.EmailField.Value = table.Rows[1]["Value"];
            RegisterPage.PasswordField.Value = table.Rows[2]["Value"];
            RegisterPage.ConfirmPasswordField.Value = table.Rows[2]["Value"];
            RegisterPage.DisplayNameField.Value = table.Rows[3]["Value"];
        }
示例#32
0
        public void ThenTheDocumentTypeDropDownContainsTheCorrectTypes(TechTalk.SpecFlow.Table table)
        {

            WebBrowser.Current.Eval("$('#DocumentType').next('.btn').click()");
            
            
            var itemsCount = WebBrowser.Current.Eval("$('li','.ui-autocomplete:visible').length");
            Assert.AreEqual(table.Rows.Count.ToString(), itemsCount);

            for (int i = 0; i < table.Rows.Count; i++)
            {
                string documentType = table.Rows[i]["DocumentType"];

                var result = WebBrowser.Current.Eval("$('li:contains(\"" + documentType + "\")','.ui-autocomplete:visible').length");

                Assert.IsTrue(result == "1");
            }
        }
        public IActionResult Update(int id, [FromBody] TechTalk item)
        {
            if (item == null || !item.Id.Equals(id))
            {
                return(BadRequest());
            }

            var techTalk = _context.TechTalk.FirstOrDefault(t => t.Id.Equals(id));

            if (techTalk == null)
            {
                return(NotFound());
            }

            techTalk.TechTalkName = item.TechTalkName;

            _context.TechTalk.Update(techTalk);
            _context.SaveChanges();
            return(new NoContentResult());
        }
示例#34
0
文件: Index.cs 项目: zccfzcc/ABC2018
        public static void CreateDocument(TechTalk techTalk)
        {
            try
            {
                var client = GetElasticClient();

                var result = client.Index(techTalk, idx => idx.Index(IndexName));

                Console.WriteLine($"Result : {result.IsValid}");

                if (!result.IsValid)
                {
                    Console.WriteLine(result.DebugInformation);
                }
            }
            catch (System.Exception)
            {
                Console.WriteLine($"Index {IndexName} failed");
            }
        }
        public void TheMultipleSelectedEmployeesTableShouldContainTheFollowingData(TechTalk.SpecFlow.Table expectedTable)
        {
            var div = WebBrowser.Current.Div(Find.ById("SelectedEmployeesGrid"));
            var displayedTable = div.Tables.First();

            Assert.That(displayedTable.TableRows.Count(), Is.EqualTo(expectedTable.RowCount));

            for (var i = 0; i < expectedTable.Rows.Count; i++)
            {
                var title = expectedTable.Rows[i]["Name"].Trim();
                Assert.AreEqual(title, displayedTable.TableRows[i].TableCells[0].Text.Trim());

                var description = expectedTable.Rows[i]["Email"].Trim();

                var displayedEmail = displayedTable.TableRows[i].TableCells[1].Text != null
                                         ? displayedTable.TableRows[i].TableCells[1].Text.Trim()
                                         : "";

                Assert.AreEqual(description, displayedEmail);
            }
        }
        public void SitesSelectListShouldContainTheFolowingData(TechTalk.SpecFlow.Table table)
        {
            Thread.Sleep(1000);

            WebBrowser.Current.Eval("$('#Site').next('.btn').click()");


            var itemsCount = WebBrowser.Current.Eval("$('li','.ui-autocomplete:visible').length");
            Assert.AreEqual(table.Rows.Count.ToString(), itemsCount);

            for (int i = 0; i < table.Rows.Count; i++)
            {
                string site = table.Rows[i]["SiteName"];

                if (!string.IsNullOrEmpty(site) && site != "Mkt Harb'ro")
                {
                    var result = WebBrowser.Current.Eval("$('li:contains(\"" + site + "\")','.ui-autocomplete:visible').length");
                    Assert.IsTrue(result == "1");
                }
            }
        }
        public IActionResult Create([FromBody] TechTalkDTO techTalkDto)
        {
            if (techTalkDto == null)
            {
                return(BadRequest());
            }

            TechTalk techTalk = new TechTalk
            {
                TechTalkName = techTalkDto.TechTalkName,
                CategoryId   = techTalkDto.CategoryId,
                Category     = _context.Categories.FirstOrDefault(x => x.Id == techTalkDto.CategoryId),
                LevelId      = techTalkDto.LevelId,
                Level        = _context.Levels.FirstOrDefault(x => x.Id == techTalkDto.LevelId)
            };

            Console.WriteLine("Saving Tech talk to database.");

            Console.WriteLine($"Tech Talk Id : {techTalk.Id}");
            Console.WriteLine($"Tech Talk Name : {techTalk.TechTalkName}");
            Console.WriteLine($"Category : {techTalk.CategoryId}");
            Console.WriteLine($"Level : {techTalk.LevelId}");

            try
            {
                _context.TechTalk.Add(techTalk);
                _context.Entry(techTalk.Category).State = EntityState.Unchanged;
                _context.Entry(techTalk.Level).State    = EntityState.Unchanged;
                _context.SaveChanges();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Inside exception block");
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.InnerException);
            }


            return(Ok());
        }
示例#38
0
        public IActionResult Create([FromBody] TechTalkDTO item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            Console.WriteLine("Sending message to queue");

            TechTalk techTalk = new TechTalk
            {
                TechTalkName = item.TechTalkName,
                CategoryId   = item.CategoryId,
                Category     = _context.Categories.FirstOrDefault(x => x.Id == item.CategoryId),
                LevelId      = item.LevelId,
                Level        = _context.Levels.FirstOrDefault(x => x.Id == item.LevelId)
            };

            _messageQueue.SendMessage(techTalk);

            return(Ok());
        }
        public void SetTestMethodCategories(TechTalk.SpecFlow.Generator.TestClassGenerationContext generationContext, System.CodeDom.CodeMemberMethod testMethod, IEnumerable<string> scenarioCategories)
        {
            this.codeDomHelper.AddAttributeForEachValue(testMethod, CATEGORY_ATTR, scenarioCategories.Where(cat => !cat.StartsWith("Browser:")));
            
            bool hasBrowser = false;

            foreach(var browser in scenarioCategories.Where(cat => cat.StartsWith("Browser:")).Select(cat => cat.Replace("Browser:", "")))
            {
                testMethod.UserData.Add("Browser:" + browser, browser);

                var withBrowserArgs = new[] { new CodeAttributeArgument(new CodePrimitiveExpression(browser)) }
                        .Concat(new[] {
                                new CodeAttributeArgument("Category", new CodePrimitiveExpression(browser)),
                                new CodeAttributeArgument("TestName", new CodePrimitiveExpression(string.Format("{0} on {1}", testMethod.Name, browser)))
                            })
                        .ToArray();

                this.codeDomHelper.AddAttribute(testMethod, ROW_ATTR, withBrowserArgs);

                hasBrowser = true;
            }

            if (hasBrowser)
            {
                if (!scenarioSetupMethodsAdded)
                {
                    generationContext.ScenarioInitializeMethod.Statements.Add(new CodeSnippetStatement("            if(this.driver != null)"));
                    generationContext.ScenarioInitializeMethod.Statements.Add(new CodeSnippetStatement("                ScenarioContext.Current.Add(\"Driver\", this.driver);"));
                    generationContext.ScenarioInitializeMethod.Statements.Add(new CodeSnippetStatement("            if(this.container != null)"));
                    generationContext.ScenarioInitializeMethod.Statements.Add(new CodeSnippetStatement("                ScenarioContext.Current.Add(\"Container\", this.container);"));
                    scenarioSetupMethodsAdded = true;
                }
                
                testMethod.Statements.Insert(0, new CodeSnippetStatement("            InitializeSelenium(browser);"));
                testMethod.Parameters.Insert(0, new System.CodeDom.CodeParameterDeclarationExpression("System.string" , "browser"));
            }
        }
示例#40
0
        private static void RabbitMQBasicMessageHandler(object model, BasicDeliverEventArgs ea)
        {
            Console.WriteLine("Inside ELK receiver...");
            var body          = ea.Body;
            var message       = Encoding.UTF8.GetString(body);
            var techTalkModel = JsonConvert.DeserializeObject <TechTalksModel.TechTalk>(message);

            TechTalk techTalk = new TechTalk
            {
                TechTalkName = techTalkModel.TechTalkName,
                Category     = techTalkModel.Category.CategoryName,
                Level        = techTalkModel.Level.LevelName,
                EventTime    = DateTime.UtcNow
            };


            Console.WriteLine($"Received message {message}");

            Console.WriteLine($"Tech Talk Name : {techTalk.TechTalkName}");
            Console.WriteLine($"Category : {techTalk.Category}");

            Index.CreateDocument(techTalk);
            Console.WriteLine("Index written successfully");
        }