How to use StructureContainBuilder class of NBi.NUnit.Builder package

Best NBi code snippet using NBi.NUnit.Builder.StructureContainBuilder

StructureContainBuilderTest.cs

Source:StructureContainBuilderTest.cs Github

copy

Full Screen

...1415namespace NBi.Testing.Unit.NUnit.Builder16{17 [TestFixture]18 public class StructureContainBuilderTest19 {2021 #region SetUp & TearDown22 //Called only at instance creation23 [TestFixtureSetUp]24 public void SetupMethods()25 {2627 }2829 //Called only at instance destruction30 [TestFixtureTearDown]31 public void TearDownMethods()32 {33 }3435 //Called before each test36 [SetUp]37 public void SetupTest()38 {39 }4041 //Called after each test42 [TearDown]43 public void TearDownTest()44 {45 }46 #endregion4748 //@@@@@@@@@@@@@@@@@@@@@@@@@49 // GetConstraint()50 //@@@@@@@@@@@@@@@@@@@@@@@@@5152 [Test]53 public void GetConstraint_BuildUniqueItem_CorrectConstraint()54 {55 //Buiding object used during test56 var sutXml = new StructureXml();57 sutXml.Item = new MeasureGroupsXml();58 sutXml.Item.ConnectionString = "ConnectionString";59 ((MeasureGroupsXml)sutXml.Item).Perspective = "Perspective";60 sutXml.Item.Caption = "MeasureGroup";6162 var ctrXml = new ContainXml();63 ctrXml.Caption = "Search";6465 var builder = new StructureContainBuilder();66 builder.Setup(sutXml, ctrXml);67 builder.Build();68 var ctr = builder.GetConstraint();6970 Assert.That(ctr, Is.InstanceOf<ContainConstraint>());71 }7273 [Test]74 public void GetConstraint_BuildMultipleItem_CorrectConstraint()75 {76 //Buiding object used during test77 var sutXml = new StructureXml();78 sutXml.Item = new MeasureGroupsXml();79 sutXml.Item.ConnectionString = "ConnectionString";80 ((MeasureGroupsXml)sutXml.Item).Perspective = "Perspective";8182 var ctrXml = new ContainXml();83 ctrXml.Items.Add("Search 1");84 ctrXml.Items.Add("Search 2");85 ctrXml.Items.Add("Search 3");8687 var builder = new StructureContainBuilder();88 builder.Setup(sutXml, ctrXml);89 builder.Build();90 var ctr = builder.GetConstraint();9192 Assert.That(ctr, Is.InstanceOf<ContainConstraint>());93 }94959697 //@@@@@@@@@@@@@@@@@@@@@@@@@98 // GetSystemUnderTest()99 //@@@@@@@@@@@@@@@@@@@@@@@@@100101102 //**********************103 // Default ConnectionString104 //**********************105106 [Test]107 public void GetSystemUnderTest_ConnectionStringInDefault_CorrectlyInitialized()108 {109 //Buiding object used during test110 var ctrXmlStubFactory = new Mock<ContainXml>();111 var ctrXml = ctrXmlStubFactory.Object;112113 var sutXml = new StructureXml();114115 sutXml.Item = new MeasureGroupsXml();116 ((MeasureGroupsXml)sutXml.Item).Perspective = "Perspective";117118 sutXml.Default = new DefaultXml() { ConnectionString = "connectionString-default" };119120 var builder = new StructureContainBuilder();121 builder.Setup(sutXml, ctrXml);122 //Call the method to test123 builder.Build();124 var sut = builder.GetSystemUnderTest();125126 //Assertion127 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());128 Assert.That(((MetadataDiscoveryRequest)sut).ConnectionString, Is.EqualTo("connectionString-default"));129 }130131132 //**********************133 // Pespective134 //**********************135136 [Test]137 public void GetSystemUnderTest_CorrectPerspectiveTarget_Success()138 {139 //Buiding object used during test140 var ctrXmlStubFactory = new Mock<ContainXml>();141 var ctrXml = ctrXmlStubFactory.Object;142143 var sutXml = new StructureXml();144 sutXml.Item = new PerspectivesXml();145 sutXml.Item.ConnectionString = "ConnectionString";146 var builder = new StructureContainBuilder();147 builder.Setup(sutXml, ctrXml);148 builder.Build();149 var sut = builder.GetSystemUnderTest();150151 //Assertion152 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());153 }154155 //**********************156 // Measure-Group157 //**********************158159 [Test]160 public void GetSystemUnderTest_CorrectMeasureGroupTarget_Success()161 {162 //Buiding object used during test163 var ctrXmlStubFactory = new Mock<ContainXml>();164 var ctrXml = ctrXmlStubFactory.Object;165166 var sutXml = new StructureXml();167 sutXml.Item = new MeasureGroupsXml();168 sutXml.Item.ConnectionString = "ConnectionString";169 ((MeasureGroupsXml)sutXml.Item).Perspective = "Perspective";170 var builder = new StructureContainBuilder();171 builder.Setup(sutXml, ctrXml);172 //Call the method to test173 builder.Build();174 var sut = builder.GetSystemUnderTest();175176 //Assertion177 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());178 }179180 [Test]181 public void GetSystemUnderTest_InCorrectMeasureGroupTargetWithoutCaption_Success()182 {183 //Buiding object used during test184 var ctrXmlStubFactory = new Mock<ContainXml>();185 var ctrXml = ctrXmlStubFactory.Object;186187 var sutXml = new StructureXml();188 sutXml.Item = new MeasureGroupsXml();189 sutXml.Item.ConnectionString = "ConnectionString";190 ((MeasureGroupsXml)sutXml.Item).Perspective = "Perspective";191 var builder = new StructureContainBuilder();192 builder.Setup(sutXml, ctrXml);193 builder.Build();194 var sut = builder.GetSystemUnderTest();195196 //Assertion197 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());198 }199200 [Test]201 public void GetSystemUnderTest_IncorrectMeasureGroupTargetWithoutPerspective_ThrowException()202 {203 //Buiding object used during test204 var ctrXmlStubFactory = new Mock<ContainXml>();205 var ctrXml = ctrXmlStubFactory.Object;206207 var sutXml = new StructureXml();208 sutXml.Item = new MeasureGroupsXml();209 sutXml.Item.ConnectionString = "ConnectionString";210211 var builder = new StructureContainBuilder();212 builder.Setup(sutXml, ctrXml);213 //Assertion214 Assert.Throws<DiscoveryRequestFactoryException>(delegate { builder.Build(); });215 }216217 //**********************218 // Measure219 //**********************220221 [Test]222 public void GetSystemUnderTest_CorrectMeasureTarget_Success()223 {224 //Buiding object used during test225 var ctrXmlStubFactory = new Mock<ContainXml>();226 var ctrXml = ctrXmlStubFactory.Object;227228 var sutXml = new StructureXml();229 sutXml.Item = new MeasuresXml();230 sutXml.Item.ConnectionString = "ConnectionString";231 ((MeasuresXml)sutXml.Item).Perspective = "Perspective";232 ((MeasuresXml)sutXml.Item).MeasureGroup = "MeasureGroup";233 var builder = new StructureContainBuilder();234 builder.Setup(sutXml, ctrXml);235 builder.Build();236 var sut = builder.GetSystemUnderTest();237238 //Assertion239 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());240 }241242 //**********************243 // Dimension244 //**********************245246 [Test]247 public void GetSystemUnderTest_CorrectDimensionTarget_Success()248 {249 //Buiding object used during test250 var ctrXmlStubFactory = new Mock<ContainXml>();251 var ctrXml = ctrXmlStubFactory.Object;252253 var sutXml = new StructureXml();254 var dim = new DimensionsXml();255 dim.ConnectionString = "ConnectionString";256 dim.Perspective = "Perspective";257 sutXml.Item = dim;258259 var builder = new StructureContainBuilder();260 builder.Setup(sutXml, ctrXml);261 //Call the method to test262 builder.Build();263 var sut = builder.GetSystemUnderTest();264265 //Assertion266 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());267 }268269270271 [Test]272 public void GetSystemUnderTest_IncorrectDimensionTargetWithoutPerspective_ThrowException()273 {274 //Buiding object used during test275 var ctrXmlStubFactory = new Mock<ContainXml>();276 var ctrXml = ctrXmlStubFactory.Object;277278 var sutXml = new StructureXml();279 sutXml.Item = new DimensionsXml();280 sutXml.Item.ConnectionString = "ConnectionString";281282 var builder = new StructureContainBuilder();283 builder.Setup(sutXml, ctrXml);284 //Assertion285 Assert.Throws<DiscoveryRequestFactoryException>(delegate { builder.Build(); });286 }287288 //**********************289 // Hierarchies290 //**********************291292 [Test]293 public void GetSystemUnderTest_CorrectHierarchyTarget_Success()294 {295 //Buiding object used during test296 var ctrXmlStubFactory = new Mock<ContainXml>();297 var ctrXml = ctrXmlStubFactory.Object;298299 var sutXml = new StructureXml();300 sutXml.Item = new DimensionsXml();301 sutXml.Item.ConnectionString = "ConnectionString";302 ((DimensionsXml)sutXml.Item).Perspective = "Perspective";303304 var builder = new StructureContainBuilder();305 builder.Setup(sutXml, ctrXml);306 //Call the method to test307 builder.Build();308 var sut = builder.GetSystemUnderTest();309310 //Assertion311 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());312 }313314315316 [Test]317 public void GetSystemUnderTest_IncorrectHierarchyTargetWithoutPerspective_ThrowException()318 {319 //Buiding object used during test320 var ctrXmlStubFactory = new Mock<ContainXml>();321 var ctrXml = ctrXmlStubFactory.Object;322323 var sutXml = new StructureXml();324 sutXml.Item = new DimensionsXml();325 sutXml.Item.ConnectionString = "ConnectionString";326327 var builder = new StructureContainBuilder();328 builder.Setup(sutXml, ctrXml);329 //Assertion330 Assert.Throws<DiscoveryRequestFactoryException>(delegate { builder.Build(); });331 }332333 //**********************334 // Levels335 //**********************336337338 [Test]339 public void GetSystemUnderTest_CorrectLevelTarget_Success()340 {341 //Buiding object used during test342 var ctrXmlStubFactory = new Mock<ContainXml>();343 var ctrXml = ctrXmlStubFactory.Object;344345 var sutXml = new StructureXml();346 sutXml.Item = new LevelsXml();347 sutXml.Item.ConnectionString = "ConnectionString";348 ((LevelsXml)sutXml.Item).Perspective = "Perspective";349 ((LevelsXml)sutXml.Item).Dimension = "Dimension";350 ((LevelsXml)sutXml.Item).Hierarchy = "Hierarchy";351 var builder = new StructureContainBuilder();352 builder.Setup(sutXml, ctrXml);353 builder.Build();354 var sut = builder.GetSystemUnderTest();355356 //Assertion357 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());358 }359360 [Test]361 public void GetSystemUnderTest_InCorrectLevelTargetWithoutHierarchy_ThrowException()362 {363 //Buiding object used during test364 var ctrXmlStubFactory = new Mock<ContainXml>();365 var ctrXml = ctrXmlStubFactory.Object;366367 var sutXml = new StructureXml();368 sutXml.Item = new LevelsXml();369 sutXml.Item.ConnectionString = "ConnectionString";370 ((LevelsXml)sutXml.Item).Perspective = "Perspective";371 ((LevelsXml)sutXml.Item).Dimension = "Dimension";372373 var builder = new StructureContainBuilder();374 builder.Setup(sutXml, ctrXml);375 //Assertion376 Assert.Throws<DiscoveryRequestFactoryException>(delegate { builder.Build(); });377 }378379 //**********************380 // Properties381 //**********************382383384 [Test]385 public void GetSystemUnderTest_CorrectPropertyTarget_Success()386 {387 //Buiding object used during test388 var ctrXmlStubFactory = new Mock<ContainXml>();389 var ctrXml = ctrXmlStubFactory.Object;390391 var sutXml = new StructureXml();392 sutXml.Item = new PropertiesXml();393 sutXml.Item.ConnectionString = "ConnectionString";394 ((PropertiesXml)sutXml.Item).Perspective = "Perspective";395 ((PropertiesXml)sutXml.Item).Dimension = "Dimension";396 ((PropertiesXml)sutXml.Item).Hierarchy = "Hierarchy";397 ((PropertiesXml)sutXml.Item).Level = "Level";398 var builder = new StructureContainBuilder();399 builder.Setup(sutXml, ctrXml);400 builder.Build();401 var sut = builder.GetSystemUnderTest();402403 //Assertion404 Assert.That(sut, Is.InstanceOf<MetadataDiscoveryRequest>());405 }406407 [Test]408 public void GetSystemUnderTest_InCorrectPropertyTargetWithoutLevel_ThrowException()409 {410 //Buiding object used during test411 var ctrXmlStubFactory = new Mock<ContainXml>();412 var ctrXml = ctrXmlStubFactory.Object;413414 var sutXml = new StructureXml();415 sutXml.Item = new PropertiesXml();416 sutXml.Item.ConnectionString = "ConnectionString";417 ((PropertiesXml)sutXml.Item).Perspective = "Perspective";418 ((PropertiesXml)sutXml.Item).Dimension = "Dimension";419 ((PropertiesXml)sutXml.Item).Hierarchy = "Hierarchy";420421 var builder = new StructureContainBuilder();422 builder.Setup(sutXml, ctrXml);423 //Assertion424 Assert.Throws<DiscoveryRequestFactoryException>(delegate { builder.Build(); });425 }426 }427} ...

Full Screen

Full Screen

StructureContainBuilder.cs

Source:StructureContainBuilder.cs Github

copy

Full Screen

...6using NBi.Xml.Systems;78namespace NBi.NUnit.Builder9{10 class StructureContainBuilder: AbstractStructureBuilder11 {12 protected ContainXml ConstraintXml {get; set;}13 14 public StructureContainBuilder() : base()15 {16 }1718 internal StructureContainBuilder(MetadataDiscoveryRequestBuilder factory)19 : base(factory)20 {21 }2223 protected override void SpecificSetup(AbstractSystemUnderTestXml sutXml, AbstractConstraintXml ctrXml)24 {25 if (!(ctrXml is ContainXml))26 throw new ArgumentException("Constraint must be a 'ContainXml'");2728 ConstraintXml = (ContainXml)ctrXml;29 }3031 protected override void SpecificBuild()32 { ...

Full Screen

Full Screen

StructureContainBuilder

Using AI Code Generation

copy

Full Screen

1using NBi.NUnit.Builder;2using NBi.NUnit.Structure;3using NBi.Xml.Constraints;4using NBi.Xml.Items;5using NBi.Xml.Items.Calculation;6using NBi.Xml.Items.ResultSet;7using NBi.Xml.Settings;8using NBi.Xml.Systems;9using NBi.Xml.Variables;10using NUnit.Framework;11using System;12using System.Collections.Generic;13using System.Data;14using System.Linq;15using System.Text;16using System.Threading.Tasks;17{18 {19 public void Execute_WithValidResultSet_ReturnTrue()20 {21 var builder = new StructureContainBuilder();22 builder.Setup(new ResultSetSystemUnderTestXml23 {24 {25 {26 new ColumnDefinitionXml {Name="col1", Type=ColumnType.Text},27 new ColumnDefinitionXml {Name="col2", Type=ColumnType.Text}28 },29 {30 new RowXml {Cells=new List<CellXml>31 {32 new CellXml {Value="1"},33 new CellXml {Value="2"}34 }},35 new RowXml {Cells=new List<CellXml>36 {37 new CellXml {Value="3"},38 new CellXml {Value="4"}39 }},40 new RowXml {Cells=new List<CellXml>41 {42 new CellXml {Value="5"},43 new CellXml {Value="6"}44 }}45 }46 },47 });48 builder.Build();49 var result = builder.Execute(new object[] { new DataTable50 {51 {52 new DataColumn("col1", typeof(string)),53 new DataColumn("col2", typeof(string))54 },55 {56 { "1", "2" },57 { "3", "4" },58 { "5", "6" }59 }60 } });61 Assert.That(result, Is.True);62 }63 public void Execute_WithInvalidResultSet_ReturnFalse()64 {65 var builder = new StructureContainBuilder();66 builder.Setup(new ResultSetSystemUnderTestXml67 {68 {

Full Screen

Full Screen

StructureContainBuilder

Using AI Code Generation

copy

Full Screen

1using NBi.NUnit.Builder;2using NUnit.Framework;3using System;4using System.Collections.Generic;5using System.Linq;6using System.Text;7using System.Threading.Tasks;8{9 {10 public void Execute_TableWithOneRowAndOneColumn_CorrectlyDetected()11 {12 var builder = new StructureContainBuilder();13 builder.Setup("Table", "Column", "Value");14 var result = builder.Execute();15 Assert.That(result, Is.True);16 }17 }18}19using NBi.NUnit.Builder;20using NUnit.Framework;21using System;22using System.Collections.Generic;23using System.Linq;24using System.Text;25using System.Threading.Tasks;26{27 {28 public void Execute_TableWithOneRowAndOneColumn_CorrectlyDetected()29 {30 var builder = new StructureContainBuilder();31 builder.Setup("Table", "Column", "Value");32 var result = builder.Execute();33 Assert.That(result, Is.True);34 }35 }36}37using NBi.NUnit.Builder;38using NUnit.Framework;39using System;40using System.Collections.Generic;41using System.Linq;42using System.Text;43using System.Threading.Tasks;44{45 {46 public void Execute_TableWithOneRowAndOneColumn_CorrectlyDetected()47 {48 var builder = new StructureContainBuilder();49 builder.Setup("Table", "Column", "Value");50 var result = builder.Execute();51 Assert.That(result, Is.True);52 }53 }54}55using NBi.NUnit.Builder;56using NUnit.Framework;57using System;58using System.Collections.Generic;59using System.Linq;60using System.Text;

Full Screen

Full Screen

StructureContainBuilder

Using AI Code Generation

copy

Full Screen

1using NBi.NUnit.Builder;2using NBi.NUnit.Structure;3using NBi.NUnit.Structure.Contain;4using NUnit.Framework;5using System;6using System.Collections.Generic;7using System.Linq;8using System.Text;9using System.Threading.Tasks;10{11 {12 public void TestMethod()13 {14 var builder = new StructureContainBuilder();15 builder.Setup("MyTable", "Column1");16 builder.GetSystemUnderTest();17 }18 }19}20{21 {22 private readonly string tableName;23 private readonly string columnName;24 public StructureContainConstraint(string tableName, string columnName)25 {26 this.tableName = tableName;27 this.columnName = columnName;28 }29 public override bool Matches(object actual)30 {31 var table = actual as TableInfo;32 if (table == null)33 throw new ArgumentException("The actual value must be a TableInfo");34 return table.Columns.Any(c => c.Name == columnName);35 }36 public override void WriteDescriptionTo(MessageWriter writer)37 {38 writer.WritePredicate(string.Format("table '{0}' to contain column '{1}'", tableName, columnName));39 }40 }41}

Full Screen

Full Screen

StructureContainBuilder

Using AI Code Generation

copy

Full Screen

1using NBi.NUnit.Builder;2using NBi.NUnit.Structure;3using NUnit.Framework;4using System;5using System.Collections.Generic;6using System.Linq;7using System.Text;8using System.Threading.Tasks;9{10 {11 public void Execute_CsvFileWithOneColumn_CorrectlyReadTheFile()12 {13 var builder = new StructureContainBuilder();14 builder.GetSystemUnderTest().Columns.Add("Column1");15 builder.Execute();16 Assert.That(builder.GetSystemUnderTest().Columns.Count, Is.EqualTo(1));17 Assert.That(builder.GetSystemUnderTest().Columns[0].Name, Is.EqualTo("Column1"));18 Assert.That(builder.GetSystemUnderTest().Columns[0].Ordinal, Is.EqualTo(0));19 }20 }21}

Full Screen

Full Screen

StructureContainBuilder

Using AI Code Generation

copy

Full Screen

1using NBi.NUnit.Builder;2using NBi.NUnit.Structure;3using NBi.NUnit.Structure;4using NBi.NUnit.Structure.Contain;5using NBi.NUnit.Structure.Contain;6using NUnit.Framework;7using System;8using System.Collections.Generic;9using System.Linq;10using System.Text;11using System.Threading.Tasks;12{13 {14 public void Execute_ContainOneTable_OneTable()15 {16 var builder = new StructureContainBuilder();17 builder.Setup("TABLE", "dbo", "Table1");18 var ctr = new StructureContainConstraint();19 ctr.Matches(builder.GetSystemUnderTest());20 Assert.That(ctr.Matches(builder.GetSystemUnderTest()), Is.True);21 }22 }23}

Full Screen

Full Screen

StructureContainBuilder

Using AI Code Generation

copy

Full Screen

1using NBi.NUnit.Builder;2using NBi.NUnit.Structure;3using NUnit.Framework;4using System;5using System.Collections.Generic;6using System.Text;7{8 {9 public void Execute_OneColumnOneRow_Contain()10 {11 var builder = new StructureContainBuilder();12 builder.Setup(new StructureContainArgs("MyColumn", "MyRow"));13 builder.Setup(new StructureContainArgs("MyColumn2", "MyRow2"));14 builder.Setup(new StructureContainArgs("MyColumn3", "MyRow3"));15 var structure = new List<Dictionary<string, object>>();16 var row = new Dictionary<string, object>();17 row.Add("MyColumn", "MyRow");18 row.Add("MyColumn2", "MyRow2");19 row.Add("MyColumn3", "MyRow3");20 structure.Add(row);21 var result = builder.Execute(structure);22 Assert.That(result, Is.True);23 }24 public void Execute_OneColumnTwoRows_Contain()25 {26 var builder = new StructureContainBuilder();27 builder.Setup(new StructureContainArgs("MyColumn", "MyRow"));28 var structure = new List<Dictionary<string, object>>();29 var row = new Dictionary<string, object>();30 row.Add("MyColumn", "MyRow");31 structure.Add(row);32 row = new Dictionary<string, object>();33 row.Add("MyColumn", "MyRow");34 structure.Add(row);35 var result = builder.Execute(structure);36 Assert.That(result, Is.True);37 }38 public void Execute_TwoColumnsTwoRows_Contain()39 {40 var builder = new StructureContainBuilder();41 builder.Setup(new StructureContainArgs("MyColumn", "MyRow"));42 builder.Setup(new StructureContainArgs("MyColumn2", "MyRow2"));43 var structure = new List<Dictionary<string, object>>();44 var row = new Dictionary<string, object>();45 row.Add("MyColumn", "MyRow");46 row.Add("MyColumn2", "MyRow2");47 structure.Add(row);48 row = new Dictionary<string, object>();49 row.Add("MyColumn", "MyRow");

Full Screen

Full Screen

StructureContainBuilder

Using AI Code Generation

copy

Full Screen

1using NBi.NUnit.Builder;2using NBi.NUnit.Structure;3using NUnit.Framework;4{5 {6 public void TestMethod()7 {8 var builder = new StructureContainBuilder();9 builder.Setup("connectionString", "select * from mytable");10 builder.GetSystemUnderTest().Contains("mycolumn");11 Assert.That(builder.GetSystemUnderTest(), Is.Not.Null);12 }13 }14}15using NBi.NUnit.Structure;16using NUnit.Framework;17{18 {19 public void TestMethod()20 {21 var builder = new StructureContainBuilder();22 builder.Setup("connectionString", "select * from mytable");23 builder.GetSystemUnderTest().Contains("mycolumn");24 Assert.That(builder.GetSystemUnderTest(), Is.Not.Null);25 }26 }27}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run NBi automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used methods in StructureContainBuilder

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful