├── .gitattributes ├── .github ├── dependabot.yml ├── release-drafter.yml └── workflows │ ├── build.yml │ ├── buildtest-action │ └── action.yml │ ├── codeql-analysis.yml │ ├── setuplinbrowser-action │ └── action.yml │ └── setupwinbrowser-action │ └── action.yml ├── .gitignore ├── CODEOWNERS ├── Docker ├── MAQSEmail │ ├── SeedData │ │ ├── AA │ │ │ └── .gitkeep │ │ ├── Test │ │ │ └── .gitkeep │ │ └── TestInbox │ │ │ ├── 1 │ │ │ ├── 2 │ │ │ ├── 3 │ │ │ └── 4 │ ├── conf.d │ │ └── 10-mail.conf │ ├── docker-compose.yml │ └── initialize_and_start_dovecot.sh ├── MAQSMongoDB │ ├── docker-compose.yml │ └── seed │ │ └── seed.js ├── MAQSSQLServer │ ├── SeedData │ │ └── MagenicAutomation │ │ │ ├── Cities.bcp │ │ │ ├── Datatype.bcp │ │ │ └── States.bcp │ ├── docker-compose.yml │ ├── initialize_and_start_sqlserver.sh │ ├── schema.sql │ └── stored_procedures.sql └── docker-compose.yml ├── Framework ├── AppiumUnitTests │ ├── App.config │ ├── AppiumConfigTests.cs │ ├── AppiumIosUnitTests.cs │ ├── AppiumTestObjectTests.cs │ ├── AppiumUnitTests.csproj │ ├── AppiumUtilitiesTests.cs │ ├── AppiumWinAppUnitTests.cs │ ├── BaseFrameworkTests.cs │ ├── GlobalSuppressions.cs │ └── NotepadPageModel.cs ├── Base.sln ├── BaseAppiumTest │ ├── AppiumConfig.cs │ ├── AppiumDriverFactory.cs │ ├── AppiumDriverManager.cs │ ├── AppiumDriverWaitExtensions.cs │ ├── AppiumSoftAssert.cs │ ├── AppiumTestObject.cs │ ├── AppiumUtilities.cs │ ├── BaseAppiumPageModel.cs │ ├── BaseAppiumTest.cs │ ├── BaseAppiumTest.csproj │ ├── IAppiumTestObject.cs │ ├── LazyMobileElement.cs │ ├── MAQS.ico │ └── PlatformType.cs ├── BaseCompositeTest │ ├── BaseCompositeTest.csproj │ └── MAQS.ico ├── BaseDatabaseTest │ ├── BaseDatabaseTest.cs │ ├── BaseDatabaseTest.csproj │ ├── ConnectionFactory.cs │ ├── DatabaseConfig.cs │ ├── DatabaseDriver.cs │ ├── DatabaseDriverManager.cs │ ├── DatabaseTestObject.cs │ ├── DatabaseUtils.cs │ ├── EventFiringDatabaseDriver.cs │ ├── MAQS.ico │ └── Providers │ │ ├── IProvider.cs │ │ ├── PostgreSQLProvider.cs │ │ ├── SQLServerProvider.cs │ │ └── SQLiteProvider.cs ├── BaseEmailTest │ ├── BaseEmailTest.cs │ ├── BaseEmailTest.csproj │ ├── ClientFactory.cs │ ├── EmailConfig.cs │ ├── EmailDriver.cs │ ├── EmailDriverManager.cs │ ├── EmailTestObject.cs │ ├── EventFiringEmailDriver.cs │ ├── IEmailTestObject.cs │ └── MAQS.ico ├── BaseMongoTest │ ├── BaseMongoTest.cs │ ├── BaseMongoTest.csproj │ ├── EventFiringMongoDBDriver.cs │ ├── IMongoTestObject.cs │ ├── MAQS.ico │ ├── MongoDBConfig.cs │ ├── MongoDBDriver.cs │ ├── MongoDriverManager.cs │ ├── MongoFactory.cs │ └── MongoTestObject.cs ├── BaseSeleniumTest │ ├── AccessibilityCheckType.cs │ ├── ActionBuilder.cs │ ├── BaseSeleniumPageModel.cs │ ├── BaseSeleniumTest.cs │ ├── BaseSeleniumTest.csproj │ ├── BrowserType.cs │ ├── ElementHandler.cs │ ├── Extensions │ │ ├── AbstractLazyIWebElement.cs │ │ ├── Extend.cs │ │ ├── Find.cs │ │ ├── LazyElement.cs │ │ └── Wait.cs │ ├── ISeleniumTestObject.cs │ ├── MAQS.ico │ ├── RemoteBrowserType.cs │ ├── SeleniumConfig.cs │ ├── SeleniumDriverManager.cs │ ├── SeleniumSoftAssert.cs │ ├── SeleniumTestObject.cs │ ├── SeleniumUtilities.cs │ └── WebDriverFactory.cs ├── BaseTest │ ├── BaseExtendableTest.cs │ ├── BaseTest.cs │ ├── BaseTest.csproj │ ├── BaseTestObject.cs │ ├── DriverManager.cs │ ├── IDriverManager.cs │ ├── IManagerStore.cs │ ├── ISoftAssert.cs │ ├── ITestObject.cs │ ├── MAQS.ico │ ├── ManagerStore.cs │ ├── SoftAssert.cs │ ├── SoftAssertException.cs │ └── SoftAssertExpectedAsserts.cs ├── BaseTestUnitTests │ ├── BaseFrameworkTests.cs │ ├── BaseTestTests.cs │ ├── BaseTestUnitTests.csproj │ ├── BaseWithSoftAssertTests.cs │ ├── BrokenLogger.cs │ └── ConsoleCopy.cs ├── BaseWebServiceTest │ ├── BaseWebServiceTest.cs │ ├── BaseWebServiceTest.csproj │ ├── CustomXmlMediaTypeFormatter.cs │ ├── EventFiringWebServiceDriver.cs │ ├── HttpClientFactory.cs │ ├── IWebServiceTestObject.cs │ ├── MAQS.ico │ ├── MediaType.cs │ ├── WebServiceConfig.cs │ ├── WebServiceDriver.cs │ ├── WebServiceDriverManager.cs │ ├── WebServiceTestObject.cs │ ├── WebServiceUtils.cs │ └── WebServiceVerb.cs ├── CompositeUnitTests │ ├── App.config │ ├── Base.cs │ ├── BaseConfig.cs │ ├── CompositeUnitTests.csproj │ ├── DatabaseDriverManagerTests.cs │ ├── DriverManagerTests.cs │ ├── EmailDriverManagerTests.cs │ ├── MongoDBManagerTests.cs │ ├── SeleniumDriverManagerTests.cs │ └── WebServiceDriverManagerTests.cs ├── DatabaseUnitTests │ ├── App.config │ ├── BaseFrameworkTests.cs │ ├── DatabaseConfigUnitTests.cs │ ├── DatabaseCustomProviderUnitTests.cs │ ├── DatabaseSQLiteUnitTests.cs │ ├── DatabaseSQLiteUnitTestsWithDriver.cs │ ├── DatabaseUnitTests.cs │ ├── DatabaseUnitTests.csproj │ ├── DatabaseUnitTestsWithDriver.cs │ ├── DatabaseUtilsUnitTests.cs │ ├── EventFiringDatabaseDriverTests.cs │ ├── Models │ │ ├── Orders.cs │ │ ├── Products.cs │ │ ├── States.cs │ │ └── Users.cs │ └── TestProvider.cs ├── EmailUnitTests │ ├── App.config │ ├── BaseFrameworkTests.cs │ ├── EmailUnitTests.csproj │ ├── EmailUnitWithDriver.cs │ ├── EmailUnitWithoutDriver.cs │ ├── GlobalSuppressions.cs │ └── TestFiles │ │ ├── Associate.png │ │ ├── deleteme.xlsm │ │ └── test.cs ├── FrameworkUnitTests │ ├── Base.cs │ ├── ConfigTests.cs │ ├── DatabaseDriverManagerTests.cs │ ├── EmailDriverFailureTests.cs │ ├── EmailDriverManagerTests.cs │ ├── EmailDriverMocks.cs │ ├── FrameworkUnitTests.csproj │ ├── MongoDriverFailureTests.cs │ ├── MongoDriverManagerTests.cs │ ├── MoqMailFolder.cs │ ├── Selenium.cs │ ├── SeleniumDriverManagerTests.cs │ ├── WebServiceDriverManagerTests.cs │ └── appsettings.json ├── MAQS.jpg ├── MongoDBUnitTests │ ├── App.config │ ├── BaseFrameworkTests.cs │ ├── MongoDBConfigUnitTests.cs │ ├── MongoDBTests.cs │ └── MongoDBUnitTests.csproj ├── MyDatabase.sqlite ├── Parallel.RunSettings ├── SauceLabs.RunSettings ├── SeleniumUnitTests │ ├── ActionBuilderUnitTests.cs │ ├── App.config │ ├── BaseFrameworkTests.cs │ ├── ElementHandlerUnitTests.cs │ ├── GlobalSuppressions.cs │ ├── LazyElementUnitTests.cs │ ├── SauceLabsBaseSeleniumTest.cs │ ├── SeleniumConfigTests.cs │ ├── SeleniumCustomConfigUnitTest.cs │ ├── SeleniumNUnitTest.cs │ ├── SeleniumPageModel.cs │ ├── SeleniumPageObjectUnitTests.cs │ ├── SeleniumProxyTests.cs │ ├── SeleniumUnitTest.cs │ ├── SeleniumUnitTests.csproj │ ├── SeleniumUtilsTest.cs │ ├── SeleniumWebElementTest.cs │ └── WebDriverFactoryUnitTests.cs ├── SpecFlowExtension │ ├── AbstractTestSteps.cs │ ├── ExtendableTestSteps.cs │ ├── MAQS.ico │ ├── SpecFlowExtension.csproj │ └── TestSteps │ │ ├── BaseAppiumTestSteps.cs │ │ ├── BaseDatabaseTestSteps.cs │ │ ├── BaseEmailTestSteps.cs │ │ ├── BaseSeleniumTestSteps.cs │ │ ├── BaseTestSteps.cs │ │ └── BaseWebServiceTestSteps.cs ├── SpecFlowExtensionNUnitTests │ ├── App.config │ ├── Features │ │ ├── DatabaseFeature.feature │ │ ├── DatabaseFeature.feature.cs │ │ ├── EmailFeature.feature │ │ ├── EmailFeature.feature.cs │ │ ├── ScenarioContextFeature.feature │ │ ├── ScenarioContextFeature.feature.cs │ │ ├── SeleniumFeature.feature │ │ ├── SeleniumFeature.feature.cs │ │ ├── TestObjectFeature.feature │ │ ├── TestObjectFeature.feature.cs │ │ ├── WebServiceFeature.feature │ │ └── WebServiceFeature.feature.cs │ ├── SpecFlowExtensionNUnitTests.csproj │ └── Steps │ │ ├── AppiumUnitTestSteps.cs │ │ ├── BaseUnitTestSteps.cs │ │ ├── DatabaseUnitTestSteps.cs │ │ ├── EmailUnitTestSteps.cs │ │ ├── SeleniumUnitTestSteps.cs │ │ └── WebServiceUnitTestSteps.cs ├── SpecFlowExtensionUnitTests │ ├── App.config │ ├── Features │ │ ├── DatabaseFeature.feature │ │ ├── DatabaseFeature.feature.cs │ │ ├── EmailFeature.feature │ │ ├── EmailFeature.feature.cs │ │ ├── ScenarioContextFeature.feature │ │ ├── ScenarioContextFeature.feature.cs │ │ ├── SeleniumFeature.feature │ │ ├── SeleniumFeature.feature.cs │ │ ├── TestObjectFeature.feature │ │ ├── TestObjectFeature.feature.cs │ │ ├── WebServiceFeature.feature │ │ └── WebServiceFeature.feature.cs │ ├── SpecFlowExtensionUnitTests.csproj │ └── Steps │ │ ├── AppiumUnitTestSteps.cs │ │ ├── BaseUnitTestSteps.cs │ │ ├── DatabaseUnitTestSteps.cs │ │ ├── EmailUnitTestSteps.cs │ │ ├── SeleniumUnitTestSteps.cs │ │ └── WebServiceUnitTestSteps.cs ├── Utilities │ ├── Helper │ │ ├── AssertionMethodAttribute.cs │ │ ├── Config.cs │ │ ├── ConfigSection.cs │ │ ├── ConfigValidation.cs │ │ ├── GenericWait.cs │ │ ├── ListProcessor.cs │ │ ├── MaqsConfigException.cs │ │ ├── StringProcessor.cs │ │ └── TestCategories.cs │ ├── Logging │ │ ├── ConsoleLogger.cs │ │ ├── FileLogger.cs │ │ ├── HtmlFileLogger.cs │ │ ├── IFileLogger.cs │ │ ├── IHtmlFileLogger.cs │ │ ├── ILogger.cs │ │ ├── Logger.cs │ │ ├── LoggerFactory.cs │ │ ├── LoggingConfig.cs │ │ ├── LoggingEnabled.cs │ │ ├── MaqsLoggingConfigException.cs │ │ ├── MessageType.cs │ │ └── TestResultType.cs │ ├── MAQS.ico │ ├── Performance │ │ ├── IPerfTimerCollection.cs │ │ ├── PerfTimer.cs │ │ └── PerfTimerCollection.cs │ ├── Settings.StyleCop │ ├── Utilities.csproj │ └── WebApplication6.ruleset ├── UtilitiesUnitTests │ ├── App.config │ ├── ConfigUnitTests.cs │ ├── ConsoleLoggerUnitTests.cs │ ├── FileLoggerThreadSafetyTests.cs │ ├── FileLoggerUnitTests.cs │ ├── GenericWaitTests.cs │ ├── GlobalSuppressions.cs │ ├── ListProcessorUnitTests.cs │ ├── LocationLoggerUnitTests.cs │ ├── LoggingConfigUnitTests.cs │ ├── PerformanceUnitTests.cs │ ├── SoftAssertUnitTests.cs │ ├── StringProcessorUnitTests.cs │ ├── UtilitiesUnitTests.csproj │ └── appsettings.json └── WebServiceUnitTests │ ├── App.config │ ├── BaseFrameworkTests.cs │ ├── CustomXmlMediaTypeFormatterTests.cs │ ├── EventFiringWebServiceDriverTests.cs │ ├── GlobalSuppressions.cs │ ├── WebServiceBaseTests.cs │ ├── WebServiceConfigTests.cs │ ├── WebServiceDriverConfig.cs │ ├── WebServiceDriverNUnitConfig.cs │ ├── WebServiceDriverOverrides.cs │ ├── WebServiceDriverVersionTests.cs │ ├── WebServiceGets.cs │ ├── WebServiceMediaType.cs │ ├── WebServiceNUnit.cs │ ├── WebServiceNonStandardHttpContentTests.cs │ ├── WebServicePatches.cs │ ├── WebServiceProxyTests.cs │ ├── WebServiceStatusCodes.cs │ ├── WebServiceUnitTests.csproj │ ├── WebServiceWithDriver.cs │ ├── WebServiceWithDriverCustomVerb.cs │ ├── WebServiceWithDriverDelete.cs │ ├── WebServiceWithDriverGets.cs │ ├── WebServiceWithDriverPatch.cs │ ├── WebServiceWithDriverPost.cs │ ├── WebServiceWithDriverPut.cs │ ├── WebServiceWithDriverSend.cs │ └── model │ ├── ArrayOfProduct.cs │ ├── Files.cs │ ├── FilesUploaded.cs │ ├── Product.cs │ └── ProductJson.cs ├── LICENSE ├── MAQS Architecture Document.docx ├── README.md ├── SECURITY.md ├── Settings.StyleCop ├── TemplateUpdate.ps1 ├── TemplateZip.ps1 ├── UpdateMAQSVersion.ps1 └── docs ├── .nojekyll ├── MAQS_6 ├── Appium │ ├── AppiumBaseTest.md │ ├── AppiumConfig.md │ ├── AppiumDriver.md │ ├── AppiumFAQ.md │ ├── AppiumFeatures.md │ ├── AppiumOverride.md │ ├── AppiumSoftAssert.md │ ├── AppiumTestObject.md │ ├── AppiumUtilities.md │ ├── LazyMobileElement.md │ ├── MobileDriverManager.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── Base │ ├── BaseExtendableTest.md │ ├── BaseFAQ.md │ ├── BaseFeatures.md │ ├── BaseTest.md │ ├── BaseTestObject.md │ ├── DriverManager.md │ ├── ManagerDictionary.md │ ├── SoftAsserts.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── ComingSoon.md ├── Database │ ├── DatabaseBaseTest.md │ ├── DatabaseConfig.md │ ├── DatabaseConnectionFactory.md │ ├── DatabaseDriver.md │ ├── DatabaseDriverOverride.md │ ├── DatabaseEventFiringDriver.md │ ├── DatabaseFAQ.md │ ├── DatabaseFeatures.md │ ├── DatabaseProviders.md │ ├── DatabaseTestObject.md │ ├── DatabaseUtilites.md │ └── MAQSDapper.md ├── Debugging-Locally.md ├── Email │ ├── EmailBaseTest.md │ ├── EmailConfig.md │ ├── EmailDriver.md │ ├── EmailDriverManager.md │ ├── EmailDriverOverride.md │ ├── EmailEventFiringlDriver.md │ ├── EmailFAQ.md │ ├── EmailFeatures.md │ ├── EmailTestObject.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── General │ ├── EnterpriseConfiguration.md │ └── ManagerStore.md ├── Getting-Started.md ├── Introduction.md ├── License.md ├── MAQS-FAQ.md ├── MongoDB │ ├── EventFiringMongoDBDriver.md │ ├── MongoBaseTest.md │ ├── MongoDBConfig.md │ ├── MongoDBDriver.md │ ├── MongoDBFeatures.md │ ├── MongoDriverManager.md │ ├── MongoDriverOverride.md │ ├── MongoFAQ.md │ └── MongoTestObject.md ├── ReleaseNotes.md ├── Selenium │ ├── ActionBuilder.md │ ├── ElementHandler.md │ ├── LazyElement.md │ ├── SeleniumBaseTest.md │ ├── SeleniumConfig.md │ ├── SeleniumDriverManager.md │ ├── SeleniumFAQ.md │ ├── SeleniumFeatures.md │ ├── SeleniumFind.md │ ├── SeleniumOverride.md │ ├── SeleniumTestObject.md │ ├── SeleniumUtilities.md │ ├── SoftAsserts.md │ ├── Waits.md │ └── WebDriverFactory.md ├── SourceLink.md ├── Specflow.md ├── TableOfContents.md ├── UpgradingFromMAQS5ToMAQS6.md ├── Utilities │ ├── Config.md │ ├── Generic-Waits.md │ └── Logger.md ├── WebService │ ├── WebServiceAuth.md │ ├── WebServiceBaseTest.md │ ├── WebServiceConfig.md │ ├── WebServiceDriver.md │ ├── WebServiceDriverManager.md │ ├── WebServiceEventFiringDriver.md │ ├── WebServiceFeatures.md │ ├── WebServiceOverride.md │ ├── WebServiceTestObject.md │ ├── WebServiceUtilities.md │ ├── WebServicesFAQ.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── _sidebar.md └── resources │ ├── AddNewTestSettings.png │ ├── DisableSpecFlowSingleFileGenerator.PNG │ ├── DotNetTemplates.png │ ├── ExtensionsAndUpdates.PNG │ ├── FromStore.PNG │ ├── Groupin1.png │ ├── Groupin2.png │ ├── InstallationNewProjectTemplate.png │ ├── InstallationRestoreNuget.png │ ├── LocalBrowserSettings.png │ ├── LoggingType.png │ ├── ManageNuget1.png │ ├── ManageNuget2.png │ ├── NUnit.png │ ├── NUnit3TestAdapter.PNG │ ├── NUnitSetup1.png │ ├── NUnitSetup2.png │ ├── NewNUnitTest2.png │ ├── NewPageModel1.png │ ├── NewPageModel2.png │ ├── NewProject1.png │ ├── NewProject2.png │ ├── NewTest1.png │ ├── NewTest2.png │ ├── Options.PNG │ ├── RestoreNugetPackages.png │ ├── ReviewCodeChanges.PNG │ ├── SpecflowForVisualStudio.PNG │ ├── TestExplorer1.png │ ├── ToolAndExtensions.PNG │ ├── VS2019ManageExtensions.png │ ├── add new item.png │ ├── extendedremotebrowsersettings.png │ ├── logconditions.png │ ├── loglevel.png │ ├── logleveldiagram.png │ ├── loglocation.png │ ├── maqsfull.jpg │ ├── maqslogo.ico │ ├── remote browser settings.png │ ├── remotebrowsersettings.png │ ├── root information.png │ ├── time.png │ └── webdriver hint path.png ├── MAQS_7 ├── Appium │ ├── AppiumBaseTest.md │ ├── AppiumConfig.md │ ├── AppiumDriver.md │ ├── AppiumDriverManager.md │ ├── AppiumFAQ.md │ ├── AppiumFeatures.md │ ├── AppiumOverride.md │ ├── AppiumSoftAssert.md │ ├── AppiumTestObject.md │ ├── AppiumUtilities.md │ ├── LazyMobileElement.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── Base │ ├── BaseExtendableTest.md │ ├── BaseFAQ.md │ ├── BaseFeatures.md │ ├── BaseTest.md │ ├── BaseTestObject.md │ ├── DriverManager.md │ ├── ManagerStore.md │ ├── SoftAsserts.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── ComingSoon.md ├── Database │ ├── DatabaseBaseTest.md │ ├── DatabaseConfig.md │ ├── DatabaseConnectionFactory.md │ ├── DatabaseDriver.md │ ├── DatabaseDriverOverride.md │ ├── DatabaseEventFiringDriver.md │ ├── DatabaseFAQ.md │ ├── DatabaseFeatures.md │ ├── DatabaseProviders.md │ ├── DatabaseTestObject.md │ ├── DatabaseUtilites.md │ └── MAQSDapper.md ├── Debugging-Locally.md ├── Email │ ├── EmailBaseTest.md │ ├── EmailConfig.md │ ├── EmailDriver.md │ ├── EmailDriverManager.md │ ├── EmailDriverOverride.md │ ├── EmailEventFiringlDriver.md │ ├── EmailFAQ.md │ ├── EmailFeatures.md │ ├── EmailTestObject.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── General │ ├── EnterpriseConfiguration.md │ └── ManagerStore.md ├── Getting-Started.md ├── Introduction.md ├── License.md ├── MAQS-FAQ.md ├── MongoDB │ ├── EventFiringMongoDBDriver.md │ ├── MongoBaseTest.md │ ├── MongoDBConfig.md │ ├── MongoDBDriver.md │ ├── MongoDBFeatures.md │ ├── MongoDriverManager.md │ ├── MongoDriverOverride.md │ ├── MongoFAQ.md │ └── MongoTestObject.md ├── ReleaseNotes.md ├── Selenium │ ├── ActionBuilder.md │ ├── ElementHandler.md │ ├── LazyElement.md │ ├── SeleniumBaseTest.md │ ├── SeleniumConfig.md │ ├── SeleniumDriverManager.md │ ├── SeleniumFAQ.md │ ├── SeleniumFeatures.md │ ├── SeleniumFind.md │ ├── SeleniumOverride.md │ ├── SeleniumTestObject.md │ ├── SeleniumUtilities.md │ ├── SoftAsserts.md │ ├── Waits.md │ └── WebDriverFactory.md ├── SourceLink.md ├── Specflow.md ├── UpgradingFromMAQS6ToMAQS7.md ├── Utilities │ ├── Config.md │ ├── Generic-Waits.md │ └── Logger.md ├── WebService │ ├── WebServiceAuth.md │ ├── WebServiceBaseTest.md │ ├── WebServiceConfig.md │ ├── WebServiceDriver.md │ ├── WebServiceDriverManager.md │ ├── WebServiceEventFiringDriver.md │ ├── WebServiceFeatures.md │ ├── WebServiceOverride.md │ ├── WebServiceTestObject.md │ ├── WebServiceUtilities.md │ ├── WebServicesFAQ.md │ └── media │ │ ├── AlertCaution.png │ │ ├── AlertNote.png │ │ ├── AlertSecurity.png │ │ ├── CFW.gif │ │ ├── CodeExample.png │ │ ├── privclass.gif │ │ ├── privdelegate.gif │ │ ├── privenumeration.gif │ │ ├── privevent.gif │ │ ├── privextension.gif │ │ ├── privfield.gif │ │ ├── privinterface.gif │ │ ├── privmethod.gif │ │ ├── privproperty.gif │ │ ├── privstructure.gif │ │ ├── protclass.gif │ │ ├── protdelegate.gif │ │ ├── protenumeration.gif │ │ ├── protevent.gif │ │ ├── protextension.gif │ │ ├── protfield.gif │ │ ├── protinterface.gif │ │ ├── protmethod.gif │ │ ├── protoperator.gif │ │ ├── protproperty.gif │ │ ├── protstructure.gif │ │ ├── pubclass.gif │ │ ├── pubdelegate.gif │ │ ├── pubenumeration.gif │ │ ├── pubevent.gif │ │ ├── pubextension.gif │ │ ├── pubfield.gif │ │ ├── pubinterface.gif │ │ ├── pubmethod.gif │ │ ├── puboperator.gif │ │ ├── pubproperty.gif │ │ ├── pubstructure.gif │ │ ├── slMobile.gif │ │ ├── static.gif │ │ └── xna.gif ├── _sidebar.md └── resources │ ├── AddNewTestSettings.png │ ├── DisableSpecFlowSingleFileGenerator.PNG │ ├── DotNetTemplates.png │ ├── ExtensionsAndUpdates.PNG │ ├── FromStore.PNG │ ├── Groupin1.png │ ├── Groupin2.png │ ├── InstallationNewProjectTemplate.png │ ├── InstallationRestoreNuget.png │ ├── LocalBrowserSettings.png │ ├── LoggingType.png │ ├── ManageNuget1.png │ ├── ManageNuget2.png │ ├── NUnit.png │ ├── NUnit3TestAdapter.PNG │ ├── NUnitSetup1.png │ ├── NUnitSetup2.png │ ├── NewNUnitTest2.png │ ├── NewPageModel1.png │ ├── NewPageModel2.png │ ├── NewProject1.png │ ├── NewProject2.png │ ├── NewTest1.png │ ├── NewTest2.png │ ├── Options.PNG │ ├── RestoreNugetPackages.png │ ├── ReviewCodeChanges.PNG │ ├── SpecflowForVisualStudio.PNG │ ├── TestExplorer1.png │ ├── ToolAndExtensions.PNG │ ├── VS2019ManageExtensions.png │ ├── add new item.png │ ├── extendedremotebrowsersettings.png │ ├── logconditions.png │ ├── loglevel.png │ ├── logleveldiagram.png │ ├── loglocation.png │ ├── maqsfull.jpg │ ├── maqslogo.ico │ ├── remote browser settings.png │ ├── remotebrowsersettings.png │ ├── root information.png │ ├── time.png │ └── webdriver hint path.png ├── README.md ├── index.html ├── override.css └── resources ├── maqsfull.jpg └── maqslogo.ico /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | # Declare files that will always have LF line endings on checkout. 4 | *.sh text eol=lf 5 | *.sql text eol=lf 6 | # Denote all files that are truly binary and should not be modified. 7 | *.png binary 8 | *.jpg binary 9 | *.bcp binary 10 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | #version: 2 2 | #updates: 3 | #- package-ecosystem: nuget 4 | # directory: "/Framework" 5 | # schedule: 6 | # interval: daily 7 | # time: "11:00" 8 | # open-pull-requests-limit: 99 9 | # target-branch: master 10 | # labels: 11 | # - dependencies 12 | # - dependabot 13 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name-template: 'v$RESOLVED_VERSION' 2 | tag-template: 'v$RESOLVED_VERSION' 3 | template: | 4 | # What's Changed 5 | 6 | $CHANGES 7 | 8 | categories: 9 | - title: 'Feature' 10 | label: 'feature' 11 | - title: 'Enhancement' 12 | label: 'enhancement' 13 | - title: 'Bug Fixes' 14 | label: 'bug' 15 | - title: 'Documentation' 16 | label: 'documentation' 17 | - title: 'Dependencies' 18 | labels: 19 | - 'dependencies' 20 | - 'dependabot' 21 | - title: 'Pipeline' 22 | label: 'pipeline' 23 | 24 | version-resolver: 25 | major: 26 | labels: 27 | - 'breaking' 28 | minor: 29 | labels: 30 | - 'feature' 31 | patch: 32 | labels: 33 | - 'bug' 34 | - 'maintenance' 35 | - 'documentation' 36 | - 'dependencies' 37 | - 'dependabot' 38 | - 'enhancement' 39 | default: patch 40 | -------------------------------------------------------------------------------- /.github/workflows/buildtest-action/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Build and test action' 2 | description: 'Build and test something' 3 | inputs: 4 | bt-param: # id of input 5 | description: 'Build and test params' 6 | required: true 7 | artifact-name: # id of input 8 | description: 'Artifact name' 9 | required: true 10 | runs: 11 | using: "composite" 12 | steps: 13 | - run: dotnet test ${{ inputs.bt-param }} -o "${{github.workspace}}/artifactTests/${{ inputs.artifact-name }}" 14 | shell: pwsh 15 | - id: random-number-generator 16 | run: echo "::set-output name=random-id::123" 17 | shell: pwsh 18 | -------------------------------------------------------------------------------- /.github/workflows/setuplinbrowser-action/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Setup Linux browser action' 2 | description: 'Make sure latest browser version is installed' 3 | runs: 4 | using: "composite" 5 | steps: 6 | - run: | 7 | sudo apt-get update 8 | Write-Host "Installing/Updating Chrome" 9 | sudo apt-get --only-upgrade install google-chrome-stable 10 | shell: pwsh 11 | -------------------------------------------------------------------------------- /.github/workflows/setupwinbrowser-action/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Setup Windows browser action' 2 | description: 'Make sure latest browser version is installed' 3 | runs: 4 | using: "composite" 5 | steps: 6 | - run: choco upgrade googlechrome 7 | shell: pwsh 8 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | 2 | # These owners will be the default owners for everything in 3 | # the repo. Unless a later match takes precedence, 4 | # @global-owner1 and @global-owner2 will be requested for 5 | # review when someone opens a pull request. 6 | * @Magenic/maqs-architects 7 | -------------------------------------------------------------------------------- /Docker/MAQSEmail/SeedData/AA/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Docker/MAQSEmail/SeedData/AA/.gitkeep -------------------------------------------------------------------------------- /Docker/MAQSEmail/SeedData/Test/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Docker/MAQSEmail/SeedData/Test/.gitkeep -------------------------------------------------------------------------------- /Docker/MAQSEmail/SeedData/TestInbox/1: -------------------------------------------------------------------------------- 1 | Return-Path: 2 | Delivered-To: debug@localdomain.test 3 | Received: from 326ccc96fc80 4 | by 326ccc96fc80 (Dovecot) with LMTP id vthNFCnMuF7uAAAAc0QkNQ 5 | for ; Mon, 11 May 2020 03:53:13 +0000 6 | Received: from JeffZ-PC2 (unknown [192.168.0.1]) 7 | by 326ccc96fc80 (Postfix) with ESMTP id 4CFD4380D4C 8 | for ; Mon, 11 May 2020 03:53:13 +0000 (UTC) 9 | MIME-Version: 1.0 10 | From: debug@localdomain.test 11 | To: debug@localdomain.test 12 | Date: 11 May 2020 23:36:14 -0500 13 | Message-ID: 5138dfeb-b321-48c8-b563-ab75592d158d 14 | Subject: Plain Text 15 | Content-Type: text/plain; charset=utf-8 16 | Content-Transfer-Encoding: base64 17 | 18 | dGVzdA== 19 | 20 | -------------------------------------------------------------------------------- /Docker/MAQSEmail/SeedData/TestInbox/2: -------------------------------------------------------------------------------- 1 | Return-Path: 2 | Delivered-To: debug@localdomain.test 3 | Received: from 1836acccd643 4 | by 1836acccd643 (Dovecot) with LMTP id 01X1MWDKuF7lAAAAfZIwhQ 5 | for ; Mon, 11 May 2020 03:45:36 +0000 6 | Received: from JeffZ-PC2 (unknown [172.31.0.1]) 7 | by 1836acccd643 (Postfix) with ESMTP id C56B5360D57 8 | for ; Mon, 11 May 2020 03:45:36 +0000 (UTC) 9 | MIME-Version: 1.0 10 | From: debug@localdomain.test 11 | To: debug@localdomain.test 12 | Date: 11 May 2020 23:28:38 -0500 13 | Message-ID: b076bb7e-33b4-467b-b7ab-9e7b59b5ae88 14 | Subject: RTF Text 15 | Content-Type: application/rtf; charset=utf-8 16 | Content-Transfer-Encoding: base64 17 | 18 | RTF Text -------------------------------------------------------------------------------- /Docker/MAQSEmail/SeedData/TestInbox/3: -------------------------------------------------------------------------------- 1 | Return-Path: 2 | Delivered-To: debug@localdomain.test 3 | Received: from 326ccc96fc80 4 | by 326ccc96fc80 (Dovecot) with LMTP id 0cwEMhvYuF7eAAAAc0QkNQ 5 | for ; Mon, 12 May 2020 04:44:11 +0000 6 | Received: from JeffZ-PC2 (unknown [192.168.0.1]) 7 | by 326ccc96fc80 (Postfix) with ESMTP id C7723380D4C 8 | for ; Mon, 12 May 2020 04:44:11 +0000 (UTC) 9 | MIME-Version: 1.0 10 | From: debug@localdomain.test 11 | To: debug@localdomain.test 12 | Date: 12 May 2020 00:27:13 -0500 13 | Message-ID: b076bb7e-33b4-467b-b7ab-9e7b59b5ae88 14 | Subject: Alternative View Message 15 | Content-Type: multipart/alternative; 16 | boundary=--boundary_0_aa6fd869-433b-4d4d-9566-bdfa95be72de 17 | 18 | 19 | ----boundary_0_aa6fd869-433b-4d4d-9566-bdfa95be72de 20 | Content-Type: text/plain; charset=us-ascii 21 | Content-Transfer-Encoding: quoted-printable 22 | 23 | Plain Text 24 | ----boundary_0_aa6fd869-433b-4d4d-9566-bdfa95be72de 25 | Content-Type: text/html; charset=us-ascii 26 | Content-Transfer-Encoding: quoted-printable 27 | 28 | Hello world 29 | ----boundary_0_aa6fd869-433b-4d4d-9566-bdfa95be72de-- 30 | 31 | 32 | -------------------------------------------------------------------------------- /Docker/MAQSEmail/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | imap: 5 | # Uncomment this for build image in local 6 | # build: 7 | # context: . 8 | image: antespi/docker-imap-devel:latest 9 | container_name: imap 10 | volumes: 11 | - ./:/mnt/host/ 12 | - ./conf.d/10-mail.conf:/etc/dovecot/conf.d/10-mail.conf 13 | ports: 14 | - "25:25" 15 | - "143:143" 16 | - "993:993" 17 | environment: 18 | - MAILNAME=localdomain.test 19 | - MAIL_ADDRESS=debug@localdomain.test 20 | - MAIL_PASS=pass 21 | command: ['/bin/bash', '/mnt/host/initialize_and_start_dovecot.sh'] -------------------------------------------------------------------------------- /Docker/MAQSEmail/initialize_and_start_dovecot.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | # Initialize account 4 | mail_address=debug@localdomain.test 5 | test_inbox=TestInbox 6 | email_directory=/mnt/host/SeedData 7 | 8 | # Go through each folder in $email_directory in alphabetical 9 | # order, and create a mailbox with that directory name. 10 | for mailbox in $(ls $email_directory) 11 | do 12 | doveadm mailbox create -u $mail_address $mailbox 13 | 14 | # Go through each file in each folder in $email_directory 15 | # and add an email message. 16 | # NOTE: The message UIDs are assigned in alphabetical file 17 | # order, starting with 1. 18 | for email in $(ls $email_directory/$mailbox) 19 | do 20 | cat $email_directory/$mailbox/$email | doveadm save -m $mailbox -u $mail_address 21 | done 22 | 23 | # Message UID 1 should be read by definition 24 | doveadm flags add -u $mail_address '\Seen' mailbox $mailbox uid 1 25 | done 26 | 27 | tail -fn 0 /var/log/mail.log -------------------------------------------------------------------------------- /Docker/MAQSMongoDB/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | mongo: 5 | image: mongo 6 | restart: always 7 | ports: 8 | - "27017:27017" 9 | volumes: 10 | - ./seed/seed.js:/docker-entrypoint-initdb.d/seed.js 11 | mongo-express: 12 | image: mongo-express 13 | restart: always 14 | ports: 15 | - 8081:8081 16 | links: 17 | - mongo 18 | environment: 19 | ME_CONFIG_MONGODB_ADMINUSERNAME: 20 | ME_CONFIG_MONGODB_ADMINPASSWORD: -------------------------------------------------------------------------------- /Docker/MAQSMongoDB/seed/seed.js: -------------------------------------------------------------------------------- 1 | db = db.getSiblingDB('MongoDatabaseTest') 2 | db.MongoTestCollection.drop(); 3 | db.MongoTestCollection.insertMany([ 4 | { 5 | "lid": "test1", 6 | "isChanged": true, 7 | "order": 1 8 | }, 9 | { 10 | "lid": "test2", 11 | "isChanged": false, 12 | "order": 2 13 | }, 14 | { 15 | "lid": "test3", 16 | "isChanged": false 17 | }, 18 | { 19 | "lid": "test4", 20 | "isChanged": false 21 | } 22 | ]) 23 | -------------------------------------------------------------------------------- /Docker/MAQSSQLServer/SeedData/MagenicAutomation/Cities.bcp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Docker/MAQSSQLServer/SeedData/MagenicAutomation/Cities.bcp -------------------------------------------------------------------------------- /Docker/MAQSSQLServer/SeedData/MagenicAutomation/Datatype.bcp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Docker/MAQSSQLServer/SeedData/MagenicAutomation/Datatype.bcp -------------------------------------------------------------------------------- /Docker/MAQSSQLServer/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | mssql: 5 | image: mcr.microsoft.com/mssql/server:latest 6 | ports: 7 | - 1433:1433 8 | environment: 9 | - ACCEPT_EULA=Y 10 | - SA_PASSWORD=magenicMAQS2 11 | - MSSQL_PID=Developer 12 | expose: 13 | - 1433 14 | volumes: 15 | # Mount the current directory onto /mnt/host on the image. 16 | - .:/mnt/host/ 17 | # Run a custom bash script that bootstraps the database after it is started. 18 | command: ['/bin/bash', '/mnt/host/initialize_and_start_sqlserver.sh'] -------------------------------------------------------------------------------- /Docker/MAQSSQLServer/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE MagenicAutomation; 2 | GO 3 | USE MagenicAutomation; 4 | GO 5 | CREATE TABLE [dbo].[States]( 6 | [StateID] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL, 7 | [StateName] [nvarchar](max) NOT NULL, 8 | [StateAbbreviation] [nvarchar](2) NULL 9 | ); 10 | GO 11 | CREATE TABLE [dbo].[Cities]( 12 | [CityID] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL, 13 | [CityName] [nvarchar](max) NOT NULL, 14 | [CityPopulation] [decimal](18, 2) 15 | ); 16 | GO 17 | CREATE TABLE [dbo].[Datatype]( 18 | [bitintType] [bigint] NULL, 19 | [bitType] [bit] NULL, 20 | [char10Type] [char](10) NULL, 21 | [dateType] [date] NULL, 22 | [dateTimeType] [datetime] NULL, 23 | [floatType] [float] NULL, 24 | [intType] [int] NULL, 25 | [ncharType] [nchar](10) NULL, 26 | [nvarcharType] [nvarchar](50) NULL, 27 | [varcharType] [varchar](50) NULL, 28 | [decimalType] [decimal](18, 2) NULL, 29 | [xmlType] [xml] NULL 30 | ); 31 | GO -------------------------------------------------------------------------------- /Docker/MAQSSQLServer/stored_procedures.sql: -------------------------------------------------------------------------------- 1 | USE MagenicAutomation; 2 | GO 3 | CREATE PROCEDURE [dbo].[getStateAbbrevMatch] 4 | @StateAbbreviation VARCHAR(2) 5 | AS BEGIN 6 | SELECT StateAbbreviation FROM States 7 | WHERE StateAbbreviation = @StateAbbreviation 8 | END 9 | GO 10 | CREATE PROCEDURE [dbo].[setStateAbbrevToSelf] 11 | @StateAbbreviation VARCHAR(2) 12 | AS BEGIN 13 | UPDATE States 14 | SET StateAbbreviation = @StateAbbreviation 15 | WHERE StateAbbreviation = @StateAbbreviation 16 | END 17 | GO 18 | -------------------------------------------------------------------------------- /Docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # The extends functionality is not yet avaliable in 2 | # Docker config files versioned 3 and higher. 3 | # If the version is bumped, this config file will have to change. 4 | # See https://github.com/moby/moby/issues/31101. 5 | version: '2' 6 | 7 | services: 8 | mssql: 9 | extends: 10 | file: ./MAQSSQLServer/docker-compose.yml 11 | service: mssql 12 | mongo: 13 | extends: 14 | file: ./MAQSMongoDB/docker-compose.yml 15 | service: mongo 16 | imap: 17 | extends: 18 | file: ./MAQSEmail/docker-compose.yml 19 | service: imap 20 | -------------------------------------------------------------------------------- /Framework/AppiumUnitTests/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This file is used by Code Analysis to maintain SuppressMessage 4 | // attributes that are applied to this project. 5 | // Project-level suppressions either have no target or are given 6 | // a specific target and scoped to a namespace, type, member, etc. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Blocker Code Smell", "S2699:Tests should include assertions", Justification = "The tests should only fail if the underlying code throws an exception")] 11 | -------------------------------------------------------------------------------- /Framework/BaseAppiumTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseAppiumTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseAppiumTest/PlatformType.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Known device types 6 | //-------------------------------------------------- 7 | namespace Magenic.Maqs.BaseAppiumTest 8 | { 9 | /// 10 | /// Known device types 11 | /// 12 | public enum PlatformType 13 | { 14 | /// 15 | /// Android application 16 | /// 17 | Android, 18 | 19 | /// 20 | /// iOS application 21 | /// 22 | iOS, 23 | 24 | /// 25 | /// Windows application 26 | /// 27 | Windows 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Framework/BaseCompositeTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseCompositeTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseDatabaseTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseDatabaseTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseDatabaseTest/Providers/IProvider.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // IProvider interface 6 | //-------------------------------------------------- 7 | 8 | namespace Magenic.Maqs.BaseDatabaseTest.Providers 9 | { 10 | /// 11 | /// The Provider interface. 12 | /// 13 | /// Type of the connection client 14 | public interface IProvider where T : class 15 | { 16 | /// 17 | /// Default database connection setup - Override this function to create your own connection 18 | /// 19 | /// The database connection string 20 | /// The http client 21 | T SetupDataBaseConnection(string connectionString); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Framework/BaseDatabaseTest/Providers/PostgreSQLProvider.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // PostgreSqlProvider class 6 | //-------------------------------------------------- 7 | 8 | using Npgsql; 9 | 10 | namespace Magenic.Maqs.BaseDatabaseTest.Providers 11 | { 12 | /// 13 | /// The POSTGRE SQL provider. 14 | /// 15 | public class PostgreSqlProvider : IProvider 16 | { 17 | /// 18 | /// Method used to create a new NPGSQL connection for POSTGRE SQL databases 19 | /// 20 | /// The connection string. 21 | /// The . 22 | public NpgsqlConnection SetupDataBaseConnection(string connectionString) 23 | { 24 | return new NpgsqlConnection(connectionString); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Framework/BaseDatabaseTest/Providers/SQLServerProvider.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // SQLServerProvider class 6 | //-------------------------------------------------- 7 | 8 | using System.Data.SqlClient; 9 | 10 | namespace Magenic.Maqs.BaseDatabaseTest.Providers 11 | { 12 | /// 13 | /// The SQL server provider. 14 | /// 15 | public class SqlServerProvider : IProvider 16 | { 17 | /// 18 | /// Method used to create a new connection for SQL server databases 19 | /// 20 | /// The connection string. 21 | /// The connection client. 22 | public SqlConnection SetupDataBaseConnection(string connectionString) 23 | { 24 | SqlConnection connection = new SqlConnection 25 | { 26 | ConnectionString = connectionString 27 | }; 28 | 29 | return connection; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Framework/BaseDatabaseTest/Providers/SQLiteProvider.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // SQLiteProvider class 6 | //-------------------------------------------------- 7 | 8 | using Microsoft.Data.Sqlite; 9 | 10 | namespace Magenic.Maqs.BaseDatabaseTest.Providers 11 | { 12 | /// 13 | /// The Sqlite provider. 14 | /// 15 | public class SqliteProvider : IProvider 16 | { 17 | /// 18 | /// Method used to create a new connection for SQLite databases 19 | /// 20 | /// The connection string. 21 | /// The connection 22 | public SqliteConnection SetupDataBaseConnection(string connectionString) 23 | { 24 | SqliteConnection connection = new SqliteConnection(connectionString); 25 | SQLitePCL.Batteries.Init(); 26 | 27 | return connection; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Framework/BaseEmailTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseEmailTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseMongoTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseMongoTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseSeleniumTest/AccessibilityCheckType.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Accessibility check types 6 | //-------------------------------------------------- 7 | namespace Magenic.Maqs.BaseSeleniumTest 8 | { 9 | /// 10 | /// Known browser types 11 | /// 12 | public enum AccessibilityCheckType 13 | { 14 | /// 15 | /// Check for violations 16 | /// 17 | Violations, 18 | 19 | /// 20 | /// Check for passing 21 | /// 22 | Passes, 23 | 24 | /// 25 | /// Check for inapplicable 26 | /// 27 | Inapplicable, 28 | 29 | /// 30 | /// Check for incomplete 31 | /// 32 | Incomplete 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Framework/BaseSeleniumTest/BrowserType.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Known browser types 6 | //-------------------------------------------------- 7 | namespace Magenic.Maqs.BaseSeleniumTest 8 | { 9 | /// 10 | /// Known browser types 11 | /// 12 | public enum BrowserType 13 | { 14 | /// 15 | /// Chrome web browser 16 | /// 17 | Chrome, 18 | 19 | /// 20 | /// Edge web browser 21 | /// 22 | Edge, 23 | 24 | /// 25 | /// Firefox web browser 26 | /// 27 | Firefox, 28 | 29 | /// 30 | /// Chrome web browser - run headless 31 | /// 32 | HeadlessChrome, 33 | 34 | /// 35 | /// IE web browser 36 | /// 37 | IE, 38 | 39 | /// 40 | /// Remote web browser - Used when executing on Grid or cloud based provides like Sauce Labs 41 | /// 42 | Remote 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Framework/BaseSeleniumTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseSeleniumTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseSeleniumTest/RemoteBrowserType.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Known remote browser types 6 | //-------------------------------------------------- 7 | 8 | namespace Magenic.Maqs.BaseSeleniumTest 9 | { 10 | /// 11 | /// Known remote browser types 12 | /// 13 | public enum RemoteBrowserType 14 | { 15 | /// 16 | /// Remote Chrome web browser 17 | /// 18 | Chrome, 19 | 20 | /// 21 | /// Remote Edge web browser 22 | /// 23 | Edge, 24 | 25 | /// 26 | /// Remote Firefox web browser 27 | /// 28 | Firefox, 29 | 30 | /// 31 | /// Remote IE web browser 32 | /// 33 | IE, 34 | 35 | /// 36 | /// Remote Safari web browser 37 | /// 38 | Safari 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Framework/BaseTest/IDriverManager.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Base driver manager interface 6 | //-------------------------------------------------- 7 | using Magenic.Maqs.Utilities.Logging; 8 | using System; 9 | 10 | namespace Magenic.Maqs.BaseTest 11 | { 12 | /// 13 | /// Interface for base driver manager 14 | /// 15 | public interface IDriverManager : IDisposable 16 | { 17 | /// 18 | /// Gets the testing object 19 | /// 20 | ILogger Log { get; } 21 | 22 | /// 23 | /// Get the driver 24 | /// 25 | /// The driver 26 | object Get(); 27 | 28 | /// 29 | /// Check if the underlying driver has been initialized 30 | /// 31 | /// True if the underlying driver has already been initialized 32 | bool IsDriverIntialized(); 33 | } 34 | } -------------------------------------------------------------------------------- /Framework/BaseTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseTest/SoftAssertExpectedAsserts.cs: -------------------------------------------------------------------------------- 1 | namespace Magenic.Maqs.BaseTest 2 | { 3 | /// 4 | /// Expected assert keys for a instance. 5 | /// 6 | public class SoftAssertExpectedAssertsAttribute : System.Attribute 7 | { 8 | /// 9 | /// Collection of Expected Assert key strings from this attribute. 10 | /// 11 | public string[] ExpectedAssertKeys { get; private set; } 12 | 13 | /// 14 | /// Expected assert keys for a instance. 15 | /// 16 | /// Collection of keys for the soft assert instance in this test. 17 | public SoftAssertExpectedAssertsAttribute(params string[] expectedAssertKeys) 18 | { 19 | ExpectedAssertKeys = expectedAssertKeys; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Framework/BaseWebServiceTest/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/BaseWebServiceTest/MAQS.ico -------------------------------------------------------------------------------- /Framework/BaseWebServiceTest/MediaType.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Web service MediaType class page 6 | //-------------------------------------------------- 7 | 8 | namespace Magenic.Maqs.BaseWebServiceTest 9 | { 10 | /// 11 | /// Test media type of web service 12 | /// 13 | public static class MediaType 14 | { 15 | /// 16 | /// String for a JSON application type 17 | /// 18 | public const string AppJson = "application/json"; 19 | 20 | /// 21 | /// String for an XML application type 22 | /// 23 | public const string AppXml = "application/xml"; 24 | 25 | /// 26 | /// String for a text or plain type 27 | /// 28 | public const string PlainText = "text/plain"; 29 | 30 | /// 31 | /// String for a images or Portable Network Graphics 32 | /// 33 | public const string ImagePng = "image/png"; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Framework/BaseWebServiceTest/WebServiceVerb.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Web service verb constants 6 | //-------------------------------------------------- 7 | 8 | namespace Magenic.Maqs.BaseWebServiceTest 9 | { 10 | /// 11 | /// Web service verb constants 12 | /// 13 | public static class WebServiceVerb 14 | { 15 | /// 16 | /// String for web service get verb 17 | /// 18 | public const string Get = "GET"; 19 | 20 | /// 21 | /// String for web service put verb 22 | /// 23 | public const string Put = "PUT"; 24 | 25 | /// 26 | /// String for web service post verb 27 | /// 28 | public const string Post = "POST"; 29 | 30 | /// 31 | /// String for web service patch verb 32 | /// 33 | public const string Patch = "PATCH"; 34 | 35 | /// 36 | /// String for web service delete verb 37 | /// 38 | public const string Delete = "DELETE"; 39 | } 40 | } -------------------------------------------------------------------------------- /Framework/DatabaseUnitTests/Models/Products.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Model representing Products table 6 | //-------------------------------------------------- 7 | 8 | using Dapper.Contrib.Extensions; 9 | 10 | namespace DatabaseUnitTests.Models 11 | { 12 | /// 13 | /// Class representing the products table. 14 | /// 15 | [Table("Products")] 16 | public class Products 17 | { 18 | /// 19 | /// Gets or sets the id. 20 | /// 21 | public int Id { get; set; } 22 | 23 | /// 24 | /// Gets or sets the product name. 25 | /// 26 | public string ProductName { get; set; } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Framework/DatabaseUnitTests/Models/States.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Model representing States table 6 | //-------------------------------------------------- 7 | 8 | namespace DatabaseUnitTests.Models 9 | { 10 | /// 11 | /// Class representing the states table. 12 | /// 13 | public class States 14 | { 15 | /// 16 | /// Gets or sets the state id. 17 | /// 18 | public int StateID { get; set; } 19 | 20 | /// 21 | /// Gets or sets the state name. 22 | /// 23 | public string StateName { get; set; } 24 | 25 | /// 26 | /// Gets or sets the state abbreviation. 27 | /// 28 | public string StateAbbreviation { get; set; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Framework/DatabaseUnitTests/Models/Users.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Model representing Users table 6 | //-------------------------------------------------- 7 | 8 | using Dapper.Contrib.Extensions; 9 | 10 | namespace DatabaseUnitTests.Models 11 | { 12 | /// 13 | /// Model representing the users table 14 | /// 15 | [Table("Users")] 16 | public class Users 17 | { 18 | /// 19 | /// Gets or sets the id. 20 | /// 21 | public int Id { get; set; } 22 | 23 | /// 24 | /// Gets or sets the first name. 25 | /// 26 | public string FirstName { get; set; } 27 | 28 | /// 29 | /// Gets or sets the last name. 30 | /// 31 | public string LastName { get; set; } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Framework/EmailUnitTests/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This file is used by Code Analysis to maintain SuppressMessage 4 | // attributes that are applied to this project. 5 | // Project-level suppressions either have no target or are given 6 | // a specific target and scoped to a namespace, type, member, etc. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Blocker Code Smell", "S2699:Tests should include assertions", Justification = "The tests should only fail if the underlying code throws an exception")] -------------------------------------------------------------------------------- /Framework/EmailUnitTests/TestFiles/Associate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/EmailUnitTests/TestFiles/Associate.png -------------------------------------------------------------------------------- /Framework/EmailUnitTests/TestFiles/deleteme.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/EmailUnitTests/TestFiles/deleteme.xlsm -------------------------------------------------------------------------------- /Framework/MAQS.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/MAQS.jpg -------------------------------------------------------------------------------- /Framework/MongoDBUnitTests/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 |
5 |
6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Framework/MyDatabase.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/MyDatabase.sqlite -------------------------------------------------------------------------------- /Framework/SeleniumUnitTests/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This file is used by Code Analysis to maintain SuppressMessage 4 | // attributes that are applied to this project. 5 | // Project-level suppressions either have no target or are given 6 | // a specific target and scoped to a namespace, type, member, etc. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Blocker Code Smell", "S2699:Tests should include assertions", Justification = "The tests should only fail if the underlying code throws an exception")] 11 | -------------------------------------------------------------------------------- /Framework/SpecFlowExtension/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/SpecFlowExtension/MAQS.ico -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionNUnitTests/Features/DatabaseFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: DatabaseFeature 2 | Database Tests 3 | 4 | @MAQS_Database 5 | Scenario: DatabaseDriver Available BaseDatabaseTestSteps 6 | Given class BaseDatabaseTestSteps 7 | Then DatabaseDriver is not null 8 | And DatabaseDriver is type DatabaseConnectionDriver 9 | -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionNUnitTests/Features/EmailFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: EmailFeature 2 | Email Tests 3 | 4 | @MAQS_Email 5 | Scenario: EmailDriver Available BaseEmailTestSteps 6 | Given class BaseEmailTestSteps 7 | Then BaseEmailTestSteps TestObject is not null 8 | And TestObject is type EmailTestObject 9 | And BaseEmailTestSteps ScenarioContext is not null 10 | -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionNUnitTests/Features/SeleniumFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: SeleniumFeature 2 | Selenium Tests 3 | 4 | @MAQS_Selenium 5 | Scenario: WebDriver Available BaseSeleniumTestSteps 6 | Given class BaseSeleniumTestSteps 7 | Then BaseSeleniumTestSteps WebDriver is not null 8 | And WebDriver is type EventFiringWebDriver -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionNUnitTests/Features/TestObjectFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: TestObjectFeature 2 | TestObject is available 3 | 4 | @MAQS_General 5 | Scenario: TestObject Available BaseTestSteps 6 | Given class BaseTestSteps 7 | Then BaseTestSteps TestObject is not null 8 | And TestObject is type BaseTestSteps 9 | 10 | @MAQS_Selenium 11 | Scenario: TestObject Available BaseSeleniumTestSteps 12 | Given class BaseSeleniumTestSteps 13 | Then BaseSeleniumTestSteps TestObject is not null 14 | And TestObject is type ISeleniumTestObject 15 | 16 | @MAQS_WebService 17 | Scenario: TestObject Available BaseWebServiceTestSteps 18 | Given class BaseWebServiceTestSteps 19 | Then BaseWebServiceTestSteps TestObject is not null 20 | And TestObject is type WebServiceTestObject 21 | 22 | @MAQS_Email 23 | Scenario: TestObject Available BaseEmailTestSteps 24 | Given class BaseEmailTestSteps 25 | Then BaseEmailTestSteps TestObject is not null 26 | And TestObject is type EmailTestObject 27 | 28 | @MAQS_Database 29 | Scenario: TestObject Available BaseDatabaseTestSteps 30 | Given class BaseDatabaseTestSteps 31 | Then BaseDatabaseTestSteps TestObject is not null 32 | And TestObject is type DatabaseTestObject -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionNUnitTests/Features/WebServiceFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: WebServiceFeature 2 | Web Service Tests 3 | 4 | @MAQS_WebService 5 | Scenario: WebServiceDriver Available BaseWebServiceTestSteps 6 | Given class BaseWebServiceTestSteps 7 | Then BaseWebServiceTestSteps WebServiceDriver is not null 8 | And BaseWebServiceTestSteps WebServiceDriver is type EventFiringWebServiceDriver 9 | -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionUnitTests/Features/DatabaseFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: DatabaseFeature 2 | Database Tests 3 | 4 | @MAQS_Database 5 | Scenario: Driver in BaseDatabaseTestSteps 6 | Given class BaseDatabaseTestSteps 7 | Then DatabaseDriver is not null 8 | And DatabaseDriver is type DatabaseConnectionDriver 9 | -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionUnitTests/Features/EmailFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: EmailFeature 2 | Email Tests 3 | 4 | @MAQS_Email 5 | Scenario: Driver in BaseEmailTestSteps 6 | Given class BaseEmailTestSteps 7 | Then BaseEmailTestSteps TestObject is not null 8 | And TestObject is type EmailTestObject 9 | And BaseEmailTestSteps ScenarioContext is not null 10 | And BaseEmailTestSteps ScenarioContext is type ScenarioContext -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionUnitTests/Features/ScenarioContextFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: ScenarioContextFeature 2 | ScenarioContext tests 3 | 4 | @MAQS_General 5 | Scenario: Context in BaseTestSteps 6 | Given class BaseTestSteps 7 | Then BaseTestSteps ScenarioContext is not null 8 | And ScenarioContext is type ScenarioContext 9 | 10 | @MAQS_Selenium 11 | Scenario: Context in BaseSeleniumTestSteps 12 | Given class BaseSeleniumTestSteps 13 | Then BaseSeleniumTestSteps ScenarioContext is not null 14 | And BaseSeleniumTestSteps ScenarioContext is type ScenarioContext 15 | 16 | @MAQS_WebService 17 | Scenario: Context in BaseWebServiceTestSteps 18 | Given class BaseWebServiceTestSteps 19 | Then BaseWebServiceTestSteps ScenarioContext is not null 20 | And BaseWebServiceTestSteps ScenarioContext is type ScenarioContext 21 | 22 | @MAQS_Email 23 | Scenario: Context in BaseEmailTestSteps 24 | Given class BaseEmailTestSteps 25 | Then BaseEmailTestSteps ScenarioContext is not null 26 | And BaseEmailTestSteps ScenarioContext is type ScenarioContext 27 | 28 | @MAQS_Database 29 | Scenario: Context in BaseDatabaseTestSteps 30 | Given class BaseDatabaseTestSteps 31 | Then BaseDatabaseTestSteps ScenarioContext is not null 32 | And BaseDatabaseTestSteps ScenarioContext is type ScenarioContext -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionUnitTests/Features/SeleniumFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: SeleniumFeature 2 | Selenium Tests 3 | 4 | @MAQS_Selenium 5 | Scenario: Driver in BaseSeleniumTestSteps 6 | Given class BaseSeleniumTestSteps 7 | Then BaseSeleniumTestSteps WebDriver is not null 8 | And WebDriver is type EventFiringWebDriver -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionUnitTests/Features/TestObjectFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: TestObjectFeature 2 | TestObject is available 3 | 4 | @MAQS_General 5 | Scenario: TestObject in BaseTestSteps 6 | Given class BaseTestSteps 7 | Then BaseTestSteps TestObject is not null 8 | And TestObject is type BaseTestSteps 9 | 10 | @MAQS_Selenium 11 | Scenario: TestObject in BaseSeleniumTestSteps 12 | Given class BaseSeleniumTestSteps 13 | Then BaseSeleniumTestSteps TestObject is not null 14 | And TestObject is type SeleniumTestObject 15 | 16 | @MAQS_WebService 17 | Scenario: TestObject in BaseWebServiceTestSteps 18 | Given class BaseWebServiceTestSteps 19 | Then BaseWebServiceTestSteps TestObject is not null 20 | And TestObject is type WebServiceTestObject 21 | 22 | @MAQS_Email 23 | Scenario: TestObject in BaseEmailTestSteps 24 | Given class BaseEmailTestSteps 25 | Then BaseEmailTestSteps TestObject is not null 26 | And TestObject is type EmailTestObject 27 | 28 | @MAQS_Database 29 | Scenario: TestObject in BaseDatabaseTestSteps 30 | Given class BaseDatabaseTestSteps 31 | Then BaseDatabaseTestSteps TestObject is not null 32 | And TestObject is type DatabaseTestObject -------------------------------------------------------------------------------- /Framework/SpecFlowExtensionUnitTests/Features/WebServiceFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: WebServiceFeature 2 | Web Service Tests 3 | 4 | @MAQS_WebService 5 | Scenario: Driver in BaseWebServiceTestSteps 6 | Given class BaseWebServiceTestSteps 7 | Then BaseWebServiceTestSteps WebServiceDriver is not null 8 | And BaseWebServiceTestSteps WebServiceDriver is type EventFiringWebServiceDriver 9 | -------------------------------------------------------------------------------- /Framework/Utilities/Helper/AssertionMethodAttribute.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // This is the SoftAssert class 6 | //-------------------------------------------------- 7 | using System; 8 | 9 | namespace Magenic.Maqs.Utilities.Helper 10 | { 11 | /// 12 | /// SonarLink 2699 Tests should include assertions 13 | /// Used for SoftAsserts 14 | /// 15 | [AttributeUsage(AttributeTargets.All, AllowMultiple = false)] 16 | public class AssertionMethodAttribute : Attribute 17 | { 18 | } 19 | } -------------------------------------------------------------------------------- /Framework/Utilities/Helper/ConfigValidation.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Magenic.Maqs.Utilities.Helper 4 | { 5 | /// 6 | /// Elements of config files which need to be validated on load 7 | /// 8 | public class ConfigValidation 9 | { 10 | /// 11 | /// Gets or sets the list of required fields for a config 12 | /// 13 | public List RequiredFields { get; set; } 14 | 15 | /// 16 | /// Gets or sets the list of fields you need at least one of for a config 17 | /// 18 | public List RequiredOneOfFields { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Framework/Utilities/Logging/IFileLogger.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // File logger interface 6 | //-------------------------------------------------- 7 | namespace Magenic.Maqs.Utilities.Logging 8 | { 9 | /// 10 | /// Interface for file logger 11 | /// 12 | public interface IFileLogger : ILogger 13 | { 14 | /// 15 | /// Gets or sets path to the log file 16 | /// 17 | string FilePath { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /Framework/Utilities/Logging/IHtmlFileLogger.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // HTML file logger interface 6 | //-------------------------------------------------- 7 | namespace Magenic.Maqs.Utilities.Logging 8 | { 9 | /// 10 | /// Inteface for HTML file logger 11 | /// 12 | public interface IHtmlFileLogger : IFileLogger 13 | { 14 | /// 15 | /// Embedd a base 64 image 16 | /// 17 | /// Base 64 image string 18 | void EmbedImage(string base64String); 19 | } 20 | } -------------------------------------------------------------------------------- /Framework/Utilities/Logging/LoggingEnabled.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // When to enable logging enumeration 6 | //-------------------------------------------------- 7 | 8 | namespace Magenic.Maqs.Utilities.Logging 9 | { 10 | /// 11 | /// The type of message 12 | /// 13 | public enum LoggingEnabled 14 | { 15 | /// 16 | /// Yes log 17 | /// 18 | YES = 0, 19 | 20 | /// 21 | /// Only save a log when there is a failure 22 | /// 23 | ONFAIL = 1, 24 | 25 | /// 26 | /// No, don't log 27 | /// 28 | NO = 2, 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Framework/Utilities/Logging/TestResultType.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Test result type enumeration 6 | //-------------------------------------------------- 7 | 8 | namespace Magenic.Maqs.Utilities.Logging 9 | { 10 | /// 11 | /// The type of result 12 | /// 13 | public enum TestResultType 14 | { 15 | /// 16 | /// The test passed 17 | /// 18 | PASS = 0, 19 | 20 | /// 21 | /// The test failed 22 | /// 23 | FAIL = 1, 24 | 25 | /// 26 | /// The test was inconclusive 27 | /// 28 | INCONCLUSIVE = 2, 29 | 30 | /// 31 | /// The test was skipped 32 | /// 33 | SKIP = 3, 34 | 35 | /// 36 | /// The test had an unexpected result 37 | /// 38 | OTHER = 4, 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Framework/Utilities/MAQS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/Framework/Utilities/MAQS.ico -------------------------------------------------------------------------------- /Framework/Utilities/WebApplication6.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Framework/UtilitiesUnitTests/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This file is used by Code Analysis to maintain SuppressMessage 4 | // attributes that are applied to this project. 5 | // Project-level suppressions either have no target or are given 6 | // a specific target and scoped to a namespace, type, member, etc. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Blocker Code Smell", "S2699:Tests should include assertions", Justification = "The tests should only fail if the underlying code throws an exception")] 11 | 12 | -------------------------------------------------------------------------------- /Framework/WebServiceUnitTests/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This file is used by Code Analysis to maintain SuppressMessage 4 | // attributes that are applied to this project. 5 | // Project-level suppressions either have no target or are given 6 | // a specific target and scoped to a namespace, type, member, etc. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Blocker Code Smell", "S2699:Tests should include assertions", Justification = "The tests should only fail if the underlying code throws an exception")] 11 | -------------------------------------------------------------------------------- /Framework/WebServiceUnitTests/model/Files.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // Employee model 6 | //-------------------------------------------------- 7 | using System; 8 | using System.Diagnostics.CodeAnalysis; 9 | 10 | namespace WebServiceTesterUnitTesting.Model 11 | { 12 | /// 13 | /// Employee Model 14 | /// 15 | [ExcludeFromCodeCoverage] 16 | public class Files 17 | { 18 | /// 19 | /// Gets or sets the file uploaded name 20 | /// 21 | public virtual string ContentName { get; set; } 22 | 23 | /// 24 | /// Gets or sets the file uploaded name 25 | /// 26 | public virtual string FileName { get; set; } 27 | 28 | /// 29 | /// Gets or sets the uploaded date 30 | /// 31 | public virtual DateTime DateUploaded { get; set; } 32 | } 33 | } -------------------------------------------------------------------------------- /Framework/WebServiceUnitTests/model/FilesUploaded.cs: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | // 3 | // Copyright 2021 Magenic, All rights Reserved 4 | // 5 | // FilesUploaded model 6 | //-------------------------------------------------- 7 | using System.Collections.Generic; 8 | using System.Diagnostics.CodeAnalysis; 9 | 10 | namespace WebServiceTesterUnitTesting.Model 11 | { 12 | /// 13 | /// Employee Model 14 | /// 15 | [ExcludeFromCodeCoverage] 16 | public class FilesUploaded 17 | { 18 | /// 19 | /// Gets or sets the list of files uploaded 20 | /// 21 | public virtual List Files { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Magenic 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /MAQS Architecture Document.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/MAQS Architecture Document.docx -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | We are currently only supporting MAQS 6 and above. 5 | *If you are using MAQS 5 or below we strongly recommend updating to 6, this [upgrade link](https://magenic.github.io/MAQS/#/MAQS_6/UpgradingFromMAQS5ToMAQS6) may help 6 | 7 | | Version | Supported | 8 | | ------- | ------------------ | 9 | | 6+ | :white_check_mark: | 10 | | < 6 | :x: | 11 | 12 | ## Reporting a Vulnerability 13 | 14 | Submit an issue. 15 | Be sure to add the security label to the issue. 16 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/.nojekyll -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/AppiumBaseTest.md: -------------------------------------------------------------------------------- 1 | # BaseAppiumTest 2 | 3 | ## Overview 4 | The BaseAppiumTest has methods that sets up the webdriver, gets the mobile driver, tears down the appium driver, and creates a new test object. 5 | 6 | # Available calls 7 | [GetMobileDevice](#GetMobileDevice) 8 | [BeforeLoggingTeardown](#BeforeLoggingTeardown) 9 | [CreateNewTestObject](#CreateNewTestObject) 10 | 11 | ## GetMobileDevice 12 | This method gets the defult Appium/Mobile driver. 13 | ```csharp 14 | protected virtual AppiumDriver GetMobileDevice() 15 | { 16 | return AppiumDriverFactory.GetDefaultMobileDriver(); 17 | } 18 | ``` 19 | 20 | ## BeforeLoggingTeardown 21 | Takes a screen shot if needed and tear down the appium driver. It is called during teardown. 22 | ```csharp 23 | this.BeforeLoggingTeardown(resultType); 24 | ``` 25 | 26 | ## CreateNewTestObject 27 | This method creates a new Appium test object based on the mobile device. 28 | ```csharp 29 | protected override void CreateNewTestObject() 30 | { 31 | this.TestObject = new AppiumTestObject(() => this.GetMobileDevice(), this.CreateLogger(), this.GetFullyQualifiedTestClassName()); 32 | } 33 | 34 | this.CreateNewTestObject(); 35 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/AppiumSoftAssert.md: -------------------------------------------------------------------------------- 1 | # Appium Soft Asserts 2 | 3 | ## Overview 4 | MAQS provides Soft Assert functionality in Appium testing. 5 | 6 | ## AreEqual 7 | Soft assert method to check if the files are equal 8 | ```csharp 9 | SoftAssert softAssert = new SoftAssert(new FileLogger(LoggingConfig.GetLogDirectory(), "UnitTests.SoftAssertUnitTests.SoftAssertValidTest")); 10 | softAssert.AreEqual("Yes", "Yes", "Utilities Soft Assert", "Message is not equal"); 11 | ``` 12 | 13 | ## TextToAppend 14 | Method to determine the text to be appended to the screenshot file names 15 | ```csharp 16 | AppiumUtilities.CaptureScreenshot(this.appiumTestObject.AppiumDriver, this.appiumTestObject, this.TextToAppend(softAssertName)); 17 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/AppiumTestObject.md: -------------------------------------------------------------------------------- 1 | # Appium Test Object 2 | 3 | ## Overview 4 | Takes care of the base test context data. 5 | 6 | [AppiumDriver](#AppiumDriver) 7 | [AppiumManager](#AppiumManager) 8 | [OverrideWebServiceDriver](#OverrideWebServiceDriver) 9 | 10 | ## AppiumDriver 11 | Gets the web service driver 12 | ```csharp 13 | AppiumDriver driver = this.AppiumManager.GetMobileDriver(); 14 | ``` 15 | 16 | ## WebServiceManager 17 | Gets the web service driver manager 18 | ```csharp 19 | MoblieDriverManager mobileDriver = this.AppiumManager.GetMobileDriver(); 20 | ``` 21 | 22 | ## OverrideWebServiceDriver 23 | Override the http client 24 | ```csharp 25 | public void OverrideWebServiceDriver(HttpClient httpClient) 26 | { 27 | this.OverrideDriverManager(typeof(MobileDriverManager).FullName, new MobileDriverManager(() => appiumDriver, this)); 28 | } 29 | ``` 30 | 31 | Override the http client driver 32 | ```csharp 33 | public void OverrideWebServiceDriver(WebServiceDriver webServiceDriver) 34 | { 35 | this.OverrideDriverManager(typeof(MobileDriverManager).FullName, new MobileDriverManager(appiumDriver, this)); 36 | } 37 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/LazyMobileElement.md: -------------------------------------------------------------------------------- 1 | # Lazy Mobile Element 2 | 3 | ## Overview 4 | The Lazy Mobile Element class is used for dynamically finding and interacting with elements 5 | 6 | ## FindElement 7 | Finds the first LazyMobileElement using the given method. 8 | ```csharp 9 | IWebElement webElement = this.FindElement(by, "Child element"); 10 | ``` 11 | 12 | ## FindRawElement 13 | Finds the first IWebElement using the given method. 14 | ```csharp 15 | IWebElement webElement = this.FindRawElement(by, "Child element"); 16 | ``` 17 | 18 | ### FindElements 19 | Finds all LazyMobileElement within the current context using the given mechanism. 20 | ```csharp 21 | ReadOnlyCollection elements = this.FindElements(by, "Child elements"); 22 | ``` 23 | 24 | ### FindRawElements 25 | Finds all IWebElement within the current context using the given mechanism. 26 | ```csharp 27 | ReadOnlyCollection elements = this.FindRawElements(by, "Child elements"); 28 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/MobileDriverManager.md: -------------------------------------------------------------------------------- 1 | # Mobile Driver Manager 2 | 3 | ## Overview 4 | The Mobile Driver Manager has overreach of the Base Driver Manager. 5 | 6 | ## Get 7 | Get the Appium driver 8 | ```csharp 9 | public override object Get() 10 | { 11 | return this.GetMobileDriver(); 12 | } 13 | ``` 14 | 15 | ## DriverDispose 16 | Cleanup the Appium driver 17 | ```csharp 18 | protected override void DriverDispose() 19 | { 20 | // If we never created the driver we don't have any cleanup to do 21 | if (!this.IsDriverIntialized()) 22 | { 23 | return; 24 | } 25 | 26 | try 27 | { 28 | AppiumDriver driver = this.GetMobileDriver(); 29 | driver?.KillDriver(); 30 | } 31 | catch (Exception e) 32 | { 33 | this.Log.LogMessage(MessageType.ERROR, StringProcessor.SafeFormatter("Failed to close mobile driver because: {0}", e.Message)); 34 | } 35 | 36 | this.BaseDriver = null; 37 | } 38 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Appium/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Appium/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/BaseExtendableTest.md: -------------------------------------------------------------------------------- 1 | # Base Extendable Test 2 | 3 | ## Overview 4 | The Base Extendable Test is the base code for classes that work with test objects (web drivers, Database connections). 5 | 6 | [TestObject](#TestObject) 7 | [Setup](#Setup) 8 | 9 | ## TestObject 10 | This method gets or sets the test object. 11 | ```csharp 12 | protected new T TestObject 13 | { 14 | get 15 | { 16 | return (T)base.TestObject; 17 | } 18 | 19 | set 20 | { 21 | this.BaseTestObjects.AddOrUpdate(this.GetFullyQualifiedTestClassName(), value, (oldkey, oldvalue) => value); 22 | } 23 | } 24 | ``` 25 | 26 | ## Setup 27 | The setup before a test 28 | ```csharp 29 | public new void Setup() 30 | { 31 | // Do base generic setup 32 | base.Setup(); 33 | } 34 | 35 | public void Setup() 36 | { 37 | // Only create a test object if one doesn't exist 38 | if (!this.BaseTestObjects.ContainsKey(this.GetFullyQualifiedTestClassName())) 39 | { 40 | // Create the test object 41 | this.CreateNewTestObject(); 42 | } 43 | } 44 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/Base/BaseFAQ.md: -------------------------------------------------------------------------------- 1 | # Base FAQ 2 | 3 | ## Why would I ever use BaseTest 4 | - You are unit testing and want to use some of the base MAQS functionality 5 | - Your system under test is something MAQS doesn't directly support -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Base/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Base/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_6/ComingSoon.md: -------------------------------------------------------------------------------- 1 | # Coming Soon -------------------------------------------------------------------------------- /docs/MAQS_6/Database/MAQSDapper.md: -------------------------------------------------------------------------------- 1 | # MAQS Dapper 2 | 3 | ## Dapper ORM 4 | ***Dapper*** is a simple, fast, open source object-relational mapping (ORM) framework. Dapper allows tests to map the database queries results into defeind or dynamic objects. See the Dapper github page for more information and usage guides: [Dapper GitHub](https://github.com/StackExchange/Dapper). 5 | 6 | ## MAQS with Dapper 7 | MAQS integrates seemlessly with Dapper by implementing some default [MAQS Providers](MAQS_6/Database/DatabaseProviders.md) and [MAQS Database Configuration Keys](MAQS_6/Database/DatabaseConfig.md). 8 | 9 | To execute a query and map the results into a list of Orders objects: 10 | ``` 11 | var orders = this.DatabaseDriver.Query("select * from orders").ToList(); 12 | ``` 13 | 14 | *The above works if using a default provider and the BaseDatabaseTest class. -------------------------------------------------------------------------------- /docs/MAQS_6/Debugging-Locally.md: -------------------------------------------------------------------------------- 1 | # How to run Unit Tests locally 2 | 3 | ## Requirements 4 | 5 | 1. [Visual Studio](https://visualstudio.microsoft.com/downloads/) 6 | 2. [Docker](https://www.docker.com/) 7 | 8 | ## Docker containers 9 | 10 | In the MAQS repository, we have 3 docker images to be able to test Email, MongoDB, and SQL server. 11 | 12 | 1. Then traverse to the docker directory and run `docker-compose up -d` 13 | 2. This will setup all the instances along with generating data 14 | 3. Note: There is a setup issue with SQL Server where if a user doesnt destroy the SQLServer instance, it will populate the data again causing duplicated 15 | 4. Once complete with work, call `docker-compose down` 16 | -------------------------------------------------------------------------------- /docs/MAQS_6/Email/EmailFAQ.md: -------------------------------------------------------------------------------- 1 | # Email FAQ 2 | 3 | ## What type email connections are supported 4 | - IMAP 5 | 6 | ## Why doesn't the driver doesn't have send email 7 | - This type of functionality is rarely used for testing -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Email/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/Email/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_6/Introduction.md: -------------------------------------------------------------------------------- 1 | # MAQS 2 | 3 | ## Introduction to MAQS 4 | MAQS stands for Magenic's automation quick start. 5 | 6 | It … 7 | - is a modular test automation framework 8 | - can be used as the base for your automation project or individual pieces can be used to enhance existing frameworks 9 | - is maintained/extended by Magenic volunteers 10 | 11 | The main idea behind MAQS is to avoid **reinventing the wheel**. Most automation engagements have you doing the same basic steps to get a functioning framework implemented. Utilizing project templates, NuGet, and utility libraries we are able to have a functioning framework up and running in minutes, almost entirely removing on the initial time investment on implementing an automation solution. 12 | 13 | To download either versions of MAQS, navigate towards the installation section 14 | 15 | ![MAQS](resources/maqsfull.jpg) -------------------------------------------------------------------------------- /docs/MAQS_6/License.md: -------------------------------------------------------------------------------- 1 | # License 2 | The MIT License (MIT) 3 | Copyright (c) 2021 Magenic 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | 11 | ![MAQS](resources/maqsfull.jpg) -------------------------------------------------------------------------------- /docs/MAQS_6/MongoDB/MongoDBConfig.md: -------------------------------------------------------------------------------- 1 | # MongoDB Config 2 | 3 | ## Overview 4 | Config class for mongoDB database 5 | 6 | ## GetConnectionString 7 | Get the client connection string 8 | ```csharp 9 | public static string GetConnectionString() 10 | { 11 | return Config.GetValueForSection(MONGOSECTION, "MongoConnectionString"); 12 | } 13 | ``` 14 | 15 | ## GetDatabaseString 16 | Get the database connection string 17 | ```csharp 18 | public static string GetDatabaseString() 19 | { 20 | return Config.GetValueForSection(MONGOSECTION, "MongoDatabase"); 21 | } 22 | ``` 23 | 24 | ## GetCollectionString 25 | Get the mongo collection string 26 | ```csharp 27 | public static string GetCollectionString() 28 | { 29 | return Config.GetValueForSection(MONGOSECTION, "MongoCollection"); 30 | } 31 | ``` 32 | 33 | ## GetQueryTimeout 34 | Get the database timeout in seconds 35 | ```csharp 36 | public static int GetQueryTimeout() 37 | { 38 | return int.Parse(Config.GetValueForSection(MONGOSECTION, "MongoTimeout", "30")); 39 | } 40 | ``` 41 | -------------------------------------------------------------------------------- /docs/MAQS_6/MongoDB/MongoDriverManager.md: -------------------------------------------------------------------------------- 1 | # MongoDB Driver Manager 2 | 3 | ## Overview 4 | Manages the MongoDB driver, it gets, disposes, maps events, and logs database events. 5 | 6 | ## OverrideDriver 7 | Override the Mongo driver 8 | ```csharp 9 | public void OverrideDriver(MongoDBDriver overrideDriver) 10 | { 11 | this.driver = overrideDriver; 12 | } 13 | ``` 14 | 15 | ## GetMongoDriver 16 | Get the Mongo driver 17 | ```csharp 18 | MongoDBDriver driver = this.GetMongoDriver(); 19 | ``` 20 | 21 | ## Get 22 | Get the Mongo driver 23 | ```csharp 24 | public override object Get() 25 | { 26 | return this.GetMongoDriver(); 27 | } 28 | ``` 29 | 30 | ## DriverDispose 31 | Dispose of the driver 32 | ```csharp 33 | protected override void DriverDispose() 34 | { 35 | this.BaseDriver = null; 36 | } 37 | ``` 38 | 39 | ## MapEvents 40 | Map database events to log events 41 | ```csharp 42 | this.MapEvents((EventFiringMongoDBDriver)this.driver); 43 | ``` 44 | 45 | ## Database_Event 46 | Database event logging. 47 | ```csharp 48 | eventFiringConnectionDriver.DatabaseEvent += this.Database_Event; 49 | ``` 50 | 51 | ## Database_Error 52 | Database error event logging. 53 | ```csharp 54 | eventFiringConnectionDriver.DatabaseErrorEvent += this.Database_Error; 55 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/MongoDB/MongoFAQ.md: -------------------------------------------------------------------------------- 1 | # MongoDB FAQ -------------------------------------------------------------------------------- /docs/MAQS_6/MongoDB/MongoTestObject.md: -------------------------------------------------------------------------------- 1 | # MongoDB Test Object 2 | 3 | ## Overview 4 | Manages the MongoDB test objects. 5 | 6 | ## MongoDBManager 7 | Gets the Mongo driver manager 8 | ```csharp 9 | MongoDBDriver driver = this.MongoDBManager.GetMongoDriver(); 10 | ``` 11 | 12 | ## MongoDBDriver 13 | Gets the Mongo driver 14 | ```csharp 15 | public MongoDBDriver MongoDBDriver 16 | { 17 | get 18 | { 19 | return this.MongoDBManager.GetMongoDriver(); 20 | } 21 | } 22 | ``` 23 | 24 | ## OverrideMongoDBDriver 25 | Override the Mongo driver settings 26 | ```csharp 27 | public void OverrideMongoDBDriver(string connectionString, string databaseString, string collectionString) 28 | { 29 | this.ManagerStore.Remove(typeof(MongoDriverManager).FullName); 30 | this.ManagerStore.Add(typeof(MongoDriverManager).FullName, new MongoDriverManager(connectionString, databaseString, collectionString, this)); 31 | } 32 | 33 | public void OverrideMongoDBDriver(MongoDBDriver driver) 34 | { 35 | this.MongoDBManager.OverrideDriver(driver); 36 | } 37 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/ReleaseNotes.md: -------------------------------------------------------------------------------- 1 | # MAQS Release Notes 2 | [GitHub Release Notes](https://github.com/Magenic/MAQS/releases) -------------------------------------------------------------------------------- /docs/MAQS_6/Selenium/SeleniumTestObject.md: -------------------------------------------------------------------------------- 1 | # Selenium Test Object 2 | 3 | ## Overview 4 | Selenium test context data 5 | 6 | ## WebManager 7 | Gets the Selenium driver manager 8 | ```csharp 9 | SeleniumDriverManager manager = this.WebManager.GetWebDriver(); 10 | ``` 11 | 12 | ## WebDriver 13 | Gets the Selenium web driver 14 | ```csharp 15 | public IWebDriver WebDriver 16 | { 17 | get 18 | { 19 | return this.WebManager.GetWebDriver(); 20 | } 21 | } 22 | ``` 23 | 24 | ## OverrideWebDriver 25 | Override the Selenium web driver 26 | ```csharp 27 | public void OverrideWebDriver(IWebDriver webDriver) 28 | { 29 | this.OverrideDriverManager(typeof(SeleniumDriverManager).FullName, new SeleniumDriverManager(() => webDriver, this)); 30 | } 31 | ``` 32 | 33 | Override the function for creating a Selenium web driver 34 | ```csharp 35 | public void OverrideWebDriver(Func getDriver) 36 | { 37 | this.OverrideDriverManager(typeof(SeleniumDriverManager).FullName, new SeleniumDriverManager(getDriver, this)); 38 | } 39 | ``` 40 | -------------------------------------------------------------------------------- /docs/MAQS_6/SourceLink.md: -------------------------------------------------------------------------------- 1 | # Utilizing SourceLink with MAQS 2 | 3 | ## What is SourceLink 4 | 5 | 6 | 7 | ## Demo 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/MAQS_6/Specflow.md: -------------------------------------------------------------------------------- 1 | # SpecFlow required installation 2 | 3 | ## Requirements 4 | Visual Studio Professional (or Enterprise) 2015 or above. 5 | 6 | *We highly recommend using Visual Studio 2017 or above* 7 | 8 | ## Install SpecFlow for Visual Studio 9 | 1. Open Visual Studio and open "Extensions and Updates" 10 | 11 | ### ![Extensions and updates](resources/ExtensionsAndUpdates.PNG) 12 | 13 | 2. Search for the SpecFlow for Visual Studio extension 14 | 15 | ### ![Specflow for Visual Studio](resources/SpecflowForVisualStudio.PNG) 16 | 17 | 3. Open Tools > Options 18 | 19 | ### ![Options](resources/Options.PNG) 20 | 21 | 4. Set the SpecFlow Legacy Option 'Enable SpecFlowSingleFileGenerator Custom Tool' to false. 22 | 23 | ### ![Disable Specflow Single File Generator](resources/DisableSpecFlowSingleFileGenerator.PNG) 24 | 25 | For more details on this process, check out the [Specflow Documentation](https://specflow.org/2019/generating-code-behind-files-using-msbuild/). 26 | 27 | ## Install NUnit 3 Test Adapter 28 | 29 | 1. Search for the NUnit 3 Test Adapter extension 30 | 31 | ### ![NUnit 3 Test Adapter](resources/NUnit3TestAdapter.PNG) -------------------------------------------------------------------------------- /docs/MAQS_6/TableOfContents.md: -------------------------------------------------------------------------------- 1 | # Table of Contents 2 | 3 | ## [i. Generic Wait](Generic-Waits.md) 4 | 5 | ## [ii. Waits](Waits.md) 6 | 7 | ## [iii. Soft Assert](Soft-Asserts.md) 8 | 9 | ## [iv. Action Builder](Action-Builder.md) 10 | 11 | ## [v. Element Handler](Element-Handler.md) 12 | 13 | ## [vi. Configurations](Configuration.md) 14 | 15 | ## [vii. Config](Config.md) 16 | 17 | ## [viii. Faker Data](FakerData.md) -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/WebServiceTestObject.md: -------------------------------------------------------------------------------- 1 | # Web Service Test Object 2 | 3 | ## Overview 4 | Takes care of the base test context data. 5 | 6 | [WebServiceDriver](#WebServiceDriver) 7 | [WebServiceManager](#WebServiceManager) 8 | [OverrideWebServiceDriver](#OverrideWebServiceDriver) 9 | 10 | ## WebServiceDriver 11 | Gets the web service driver 12 | ```csharp 13 | this.TestObject.WebServiceDriver 14 | ``` 15 | 16 | ## WebServiceManager 17 | Gets the web service driver manager 18 | ```csharp 19 | this.TestObject.WebServiceDriver 20 | ``` 21 | 22 | ## OverrideWebServiceDriver 23 | Override the http client 24 | ```csharp 25 | public void OverrideWebServiceDriver(HttpClient httpClient) 26 | { 27 | this.OverrideDriverManager(typeof(WebServiceDriverManager).FullName, new WebServiceDriverManager(() => httpClient, this)); 28 | } 29 | ``` 30 | 31 | Override the http client driver 32 | ```csharp 33 | public void OverrideWebServiceDriver(WebServiceDriver webServiceDriver) 34 | { 35 | (this.ManagerStore[typeof(WebServiceDriverManager).FullName] as WebServiceDriverManager).OverrideDriver(webServiceDriver); 36 | } 37 | ``` -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/WebServicesFAQ.md: -------------------------------------------------------------------------------- 1 | # Web Service FAQ 2 | -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_6/WebService/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/WebService/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_6/resources/AddNewTestSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/AddNewTestSettings.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/DisableSpecFlowSingleFileGenerator.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/DisableSpecFlowSingleFileGenerator.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/DotNetTemplates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/DotNetTemplates.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/ExtensionsAndUpdates.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/ExtensionsAndUpdates.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/FromStore.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/FromStore.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/Groupin1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/Groupin1.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/Groupin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/Groupin2.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/InstallationNewProjectTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/InstallationNewProjectTemplate.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/InstallationRestoreNuget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/InstallationRestoreNuget.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/LocalBrowserSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/LocalBrowserSettings.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/LoggingType.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/LoggingType.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/ManageNuget1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/ManageNuget1.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/ManageNuget2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/ManageNuget2.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NUnit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NUnit.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NUnit3TestAdapter.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NUnit3TestAdapter.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NUnitSetup1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NUnitSetup1.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NUnitSetup2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NUnitSetup2.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NewNUnitTest2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NewNUnitTest2.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NewPageModel1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NewPageModel1.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NewPageModel2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NewPageModel2.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NewProject1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NewProject1.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NewProject2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NewProject2.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NewTest1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NewTest1.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/NewTest2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/NewTest2.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/Options.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/Options.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/RestoreNugetPackages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/RestoreNugetPackages.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/ReviewCodeChanges.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/ReviewCodeChanges.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/SpecflowForVisualStudio.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/SpecflowForVisualStudio.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/TestExplorer1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/TestExplorer1.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/ToolAndExtensions.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/ToolAndExtensions.PNG -------------------------------------------------------------------------------- /docs/MAQS_6/resources/VS2019ManageExtensions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/VS2019ManageExtensions.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/add new item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/add new item.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/extendedremotebrowsersettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/extendedremotebrowsersettings.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/logconditions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/logconditions.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/loglevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/loglevel.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/logleveldiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/logleveldiagram.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/loglocation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/loglocation.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/maqsfull.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/maqsfull.jpg -------------------------------------------------------------------------------- /docs/MAQS_6/resources/maqslogo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/maqslogo.ico -------------------------------------------------------------------------------- /docs/MAQS_6/resources/remote browser settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/remote browser settings.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/remotebrowsersettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/remotebrowsersettings.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/root information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/root information.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/time.png -------------------------------------------------------------------------------- /docs/MAQS_6/resources/webdriver hint path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_6/resources/webdriver hint path.png -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/AppiumBaseTest.md: -------------------------------------------------------------------------------- 1 | # BaseAppiumTest 2 | 3 | ## Overview 4 | The BaseAppiumTest has methods that sets up the webdriver, gets the mobile driver, tears down the appium driver, and creates a new test object. 5 | 6 | # Available calls 7 | [GetMobileDevice](#GetMobileDevice) 8 | [BeforeLoggingTeardown](#BeforeLoggingTeardown) 9 | [CreateNewTestObject](#CreateNewTestObject) 10 | 11 | ## GetMobileDevice 12 | This method gets the default Appium/Mobile driver. 13 | ```csharp 14 | protected virtual AppiumDriver GetMobileDevice() 15 | { 16 | return AppiumDriverFactory.GetDefaultMobileDriver(); 17 | } 18 | ``` 19 | 20 | ## BeforeLoggingTeardown 21 | Takes a screen shot if needed and tear down the appium driver. It is called during teardown. 22 | ```csharp 23 | this.BeforeLoggingTeardown(resultType); 24 | ``` 25 | 26 | ## CreateNewTestObject 27 | This method creates a new Appium test object based on the mobile device. 28 | ```csharp 29 | protected override void CreateNewTestObject() 30 | { 31 | this.TestObject = new AppiumTestObject(() => this.GetMobileDevice(), this.CreateLogger(), this.GetFullyQualifiedTestClassName()); 32 | } 33 | 34 | this.CreateNewTestObject(); 35 | ``` -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/AppiumDriverManager.md: -------------------------------------------------------------------------------- 1 | # Appium Driver Manager 2 | 3 | ## Overview 4 | The Appium Driver Manager has overreach of the Base Driver Manager. 5 | 6 | ## Get 7 | Get the Appium driver 8 | ```csharp 9 | public override object Get() 10 | { 11 | return this.GetAppiumDriver(); 12 | } 13 | ``` 14 | 15 | ## DriverDispose 16 | Cleanup the Appium driver 17 | ```csharp 18 | protected override void DriverDispose() 19 | { 20 | // If we never created the driver we don't have any cleanup to do 21 | if (!this.IsDriverInitialized()) 22 | { 23 | return; 24 | } 25 | 26 | try 27 | { 28 | AppiumDriver driver = this.GetAppiumDriver(); 29 | driver?.KillDriver(); 30 | } 31 | catch (Exception e) 32 | { 33 | this.Log.LogMessage(MessageType.ERROR, StringProcessor.SafeFormatter("Failed to close mobile driver because: {0}", e.Message)); 34 | } 35 | 36 | this.BaseDriver = null; 37 | } 38 | ``` -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Appium/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Appium/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/BaseExtendableTest.md: -------------------------------------------------------------------------------- 1 | # Base Extendable Test 2 | 3 | ## Overview 4 | The Base Extendable Test is the base code for classes that work with test objects (web drivers, Database connections). 5 | 6 | [TestObject](#TestObject) 7 | [Setup](#Setup) 8 | 9 | ## TestObject 10 | This method gets or sets the test object. 11 | ```csharp 12 | protected new T TestObject 13 | { 14 | get 15 | { 16 | return (T)base.TestObject; 17 | } 18 | 19 | set 20 | { 21 | this.BaseTestObjects.AddOrUpdate(this.GetFullyQualifiedTestClassName(), value, (oldkey, oldvalue) => value); 22 | } 23 | } 24 | ``` 25 | 26 | ## Setup 27 | The setup before a test 28 | ```csharp 29 | public new void Setup() 30 | { 31 | // Do base generic setup 32 | base.Setup(); 33 | } 34 | 35 | public void Setup() 36 | { 37 | // Only create a test object if one doesn't exist 38 | if (!this.BaseTestObjects.ContainsKey(this.GetFullyQualifiedTestClassName())) 39 | { 40 | // Create the test object 41 | this.CreateNewTestObject(); 42 | } 43 | } 44 | ``` -------------------------------------------------------------------------------- /docs/MAQS_7/Base/BaseFAQ.md: -------------------------------------------------------------------------------- 1 | # Base FAQ -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Base/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Base/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_7/ComingSoon.md: -------------------------------------------------------------------------------- 1 | # Coming Soon -------------------------------------------------------------------------------- /docs/MAQS_7/Database/MAQSDapper.md: -------------------------------------------------------------------------------- 1 | # MAQS Dapper 2 | 3 | ## Dapper ORM 4 | ***Dapper*** is a simple, fast, open source object-relational mapping (ORM) framework. Dapper allows tests to map the database queries results into defeind or dynamic objects. See the Dapper github page for more information and usage guides: [Dapper GitHub](https://github.com/StackExchange/Dapper). 5 | 6 | ## MAQS with Dapper 7 | MAQS integrates seemlessly with Dapper by implementing some default [MAQS Providers](MAQS_6/Database/DatabaseProviders.md) and [MAQS Database Configuration Keys](MAQS_6/Database/DatabaseConfig.md). 8 | 9 | To execute a query and map the results into a list of Orders objects: 10 | ``` 11 | var orders = this.DatabaseDriver.Query("select * from orders").ToList(); 12 | ``` 13 | 14 | *The above works if using a default provider and the BaseDatabaseTest class. -------------------------------------------------------------------------------- /docs/MAQS_7/Debugging-Locally.md: -------------------------------------------------------------------------------- 1 | # How to run Unit Tests locally 2 | 3 | ## Requirements 4 | 5 | 1. [Visual Studio](https://visualstudio.microsoft.com/downloads/) 6 | 2. [Docker](https://www.docker.com/) 7 | 8 | ## Docker containers 9 | 10 | In the MAQS repository, we have 3 docker images to be able to test Email, MongoDB, and SQL server. 11 | 12 | 1. Then traverse to the docker directory and run `docker-compose up -d` 13 | 2. This will setup all the instances along with generating data 14 | 3. Note: There is a setup issue with SQL Server where if a user doesn't destroy the SQLServer instance, it will populate the data again causing duplicated 15 | 4. Once complete with work, call `docker-compose down` 16 | -------------------------------------------------------------------------------- /docs/MAQS_7/Email/EmailFAQ.md: -------------------------------------------------------------------------------- 1 | # Email FAQ 2 | 3 | -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Email/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/Email/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_7/Introduction.md: -------------------------------------------------------------------------------- 1 | # MAQS 2 | 3 | ## Introduction to MAQS 4 | MAQS stands for Magenic's automation quick start. 5 | 6 | It … 7 | - is a modular test automation framework 8 | - can be used as the base for your automation project or individual pieces can be used to enhance existing frameworks 9 | - is maintained/extended by Magenic volunteers 10 | 11 | The main idea behind MAQS is to avoid **reinventing the wheel**. Most automation engagements have you doing the same basic steps to get a functioning framework implemented. Utilizing project templates, NuGet, and utility libraries we are able to have a functioning framework up and running in minutes, almost entirely removing on the initial time investment on implementing an automation solution. 12 | 13 | To download either versions of MAQS, navigate towards the installation section 14 | 15 | ![MAQS](resources/maqsfull.jpg) -------------------------------------------------------------------------------- /docs/MAQS_7/License.md: -------------------------------------------------------------------------------- 1 | # License 2 | The MIT License (MIT) 3 | Copyright (c) 2021 Magenic 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | 11 | ![MAQS](resources/maqsfull.jpg) -------------------------------------------------------------------------------- /docs/MAQS_7/MongoDB/MongoDBConfig.md: -------------------------------------------------------------------------------- 1 | # MongoDB Config 2 | 3 | ## Overview 4 | Config class for mongoDB database 5 | 6 | ## GetConnectionString 7 | Get the client connection string 8 | ```csharp 9 | public static string GetConnectionString() 10 | { 11 | return Config.GetValueForSection(MONGOSECTION, "MongoConnectionString"); 12 | } 13 | ``` 14 | 15 | ## GetDatabaseString 16 | Get the database connection string 17 | ```csharp 18 | public static string GetDatabaseString() 19 | { 20 | return Config.GetValueForSection(MONGOSECTION, "MongoDatabase"); 21 | } 22 | ``` 23 | 24 | ## GetCollectionString 25 | Get the mongo collection string 26 | ```csharp 27 | public static string GetCollectionString() 28 | { 29 | return Config.GetValueForSection(MONGOSECTION, "MongoCollection"); 30 | } 31 | ``` 32 | 33 | ## GetQueryTimeout 34 | Get the database timeout in seconds 35 | ```csharp 36 | public static int GetQueryTimeout() 37 | { 38 | return int.Parse(Config.GetValueForSection(MONGOSECTION, "MongoTimeout", "30")); 39 | } 40 | ``` 41 | -------------------------------------------------------------------------------- /docs/MAQS_7/MongoDB/MongoFAQ.md: -------------------------------------------------------------------------------- 1 | # MongoDB FAQ -------------------------------------------------------------------------------- /docs/MAQS_7/MongoDB/MongoTestObject.md: -------------------------------------------------------------------------------- 1 | # MongoDB Test Object 2 | 3 | ## Overview 4 | Manages the MongoDB test objects. 5 | 6 | ## MongoDBManager 7 | Gets the Mongo driver manager 8 | ```csharp 9 | MongoDBDriver driver = this.MongoDBManager.GetMongoDriver(); 10 | ``` 11 | 12 | ## MongoDBDriver 13 | Gets the Mongo driver 14 | ```csharp 15 | public MongoDBDriver MongoDBDriver 16 | { 17 | get 18 | { 19 | return this.MongoDBManager.GetMongoDriver(); 20 | } 21 | } 22 | ``` 23 | 24 | ## OverrideMongoDBDriver 25 | Override the Mongo driver settings 26 | ```csharp 27 | public void OverrideMongoDBDriver(string connectionString, string databaseString, string collectionString) 28 | { 29 | this.ManagerStore.Remove(typeof(MongoDriverManager).FullName); 30 | this.ManagerStore.Add(typeof(MongoDriverManager).FullName, new MongoDriverManager(connectionString, databaseString, collectionString, this)); 31 | } 32 | 33 | public void OverrideMongoDBDriver(MongoDBDriver driver) 34 | { 35 | this.MongoDBManager.OverrideDriver(driver); 36 | } 37 | ``` -------------------------------------------------------------------------------- /docs/MAQS_7/ReleaseNotes.md: -------------------------------------------------------------------------------- 1 | # MAQS Release Notes 2 | [GitHub Release Notes](https://github.com/Magenic/MAQS/releases) -------------------------------------------------------------------------------- /docs/MAQS_7/Selenium/SeleniumTestObject.md: -------------------------------------------------------------------------------- 1 | # Selenium Test Object 2 | 3 | ## Overview 4 | Selenium test context data 5 | 6 | ## WebManager 7 | Gets the Selenium driver manager 8 | ```csharp 9 | SeleniumDriverManager manager = this.WebManager.GetWebDriver(); 10 | ``` 11 | 12 | ## WebDriver 13 | Gets the Selenium web driver 14 | ```csharp 15 | public IWebDriver WebDriver 16 | { 17 | get 18 | { 19 | return this.WebManager.GetWebDriver(); 20 | } 21 | } 22 | ``` 23 | 24 | ## OverrideWebDriver 25 | Override the Selenium web driver 26 | ```csharp 27 | public void OverrideWebDriver(IWebDriver webDriver) 28 | { 29 | this.OverrideDriverManager(typeof(SeleniumDriverManager).FullName, new SeleniumDriverManager(() => webDriver, this)); 30 | } 31 | ``` 32 | 33 | Override the function for creating a Selenium web driver 34 | ```csharp 35 | public void OverrideWebDriver(Func getDriver) 36 | { 37 | this.OverrideDriverManager(typeof(SeleniumDriverManager).FullName, new SeleniumDriverManager(getDriver, this)); 38 | } 39 | ``` 40 | -------------------------------------------------------------------------------- /docs/MAQS_7/SourceLink.md: -------------------------------------------------------------------------------- 1 | # Utilizing SourceLink with MAQS 2 | 3 | ## What is SourceLink 4 | 5 | 6 | 7 | ## Demo 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/MAQS_7/Specflow.md: -------------------------------------------------------------------------------- 1 | # SpecFlow required installation 2 | 3 | ## Requirements 4 | Visual Studio Professional (or Enterprise) 2015 or above. 5 | 6 | *We highly recommend using Visual Studio 2017 or above* 7 | 8 | ## Install SpecFlow for Visual Studio 9 | 1. Open Visual Studio and open "Extensions and Updates" 10 | 11 | ### ![Extensions and updates](resources/ExtensionsAndUpdates.PNG) 12 | 13 | 2. Search for the SpecFlow for Visual Studio extension 14 | 15 | ### ![Specflow for Visual Studio](resources/SpecflowForVisualStudio.PNG) 16 | 17 | 3. Open Tools > Options 18 | 19 | ### ![Options](resources/Options.PNG) 20 | 21 | 4. Set the SpecFlow Legacy Option 'Enable SpecFlowSingleFileGenerator Custom Tool' to false. 22 | 23 | ### ![Disable Specflow Single File Generator](resources/DisableSpecFlowSingleFileGenerator.PNG) 24 | 25 | For more details on this process, check out the [Specflow Documentation](https://specflow.org/2019/generating-code-behind-files-using-msbuild/). 26 | 27 | ## Install NUnit 3 Test Adapter 28 | 29 | 1. Search for the NUnit 3 Test Adapter extension 30 | 31 | ### ![NUnit 3 Test Adapter](resources/NUnit3TestAdapter.PNG) -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/WebServiceTestObject.md: -------------------------------------------------------------------------------- 1 | # Web Service Test Object 2 | 3 | ## Overview 4 | Takes care of the base test context data. 5 | 6 | [WebServiceDriver](#WebServiceDriver) 7 | [WebServiceManager](#WebServiceManager) 8 | [OverrideWebServiceDriver](#OverrideWebServiceDriver) 9 | 10 | ## WebServiceDriver 11 | Gets the web service driver 12 | ```csharp 13 | this.TestObject.WebServiceDriver 14 | ``` 15 | 16 | ## WebServiceManager 17 | Gets the web service driver manager 18 | ```csharp 19 | this.TestObject.WebServiceDriver 20 | ``` 21 | 22 | ## OverrideWebServiceDriver 23 | Override the http client 24 | ```csharp 25 | public void OverrideWebServiceDriver(HttpClient httpClient) 26 | { 27 | this.OverrideDriverManager(typeof(WebServiceDriverManager).FullName, new WebServiceDriverManager(() => httpClient, this)); 28 | } 29 | ``` 30 | 31 | Override the http client driver 32 | ```csharp 33 | public void OverrideWebServiceDriver(WebServiceDriver webServiceDriver) 34 | { 35 | (this.ManagerStore[typeof(WebServiceDriverManager).FullName] as WebServiceDriverManager).OverrideDriver(webServiceDriver); 36 | } 37 | ``` -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/WebServicesFAQ.md: -------------------------------------------------------------------------------- 1 | # Web Service FAQ 2 | -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/AlertCaution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/AlertCaution.png -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/AlertNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/AlertNote.png -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/AlertSecurity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/AlertSecurity.png -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/CFW.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/CodeExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/CodeExample.png -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/privstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protoperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/protstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubclass.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubdelegate.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubenumeration.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubevent.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubextension.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubfield.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubinterface.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubmethod.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/puboperator.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubproperty.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/pubstructure.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/slMobile.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/static.gif -------------------------------------------------------------------------------- /docs/MAQS_7/WebService/media/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/WebService/media/xna.gif -------------------------------------------------------------------------------- /docs/MAQS_7/resources/AddNewTestSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/AddNewTestSettings.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/DisableSpecFlowSingleFileGenerator.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/DisableSpecFlowSingleFileGenerator.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/DotNetTemplates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/DotNetTemplates.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/ExtensionsAndUpdates.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/ExtensionsAndUpdates.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/FromStore.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/FromStore.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/Groupin1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/Groupin1.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/Groupin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/Groupin2.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/InstallationNewProjectTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/InstallationNewProjectTemplate.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/InstallationRestoreNuget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/InstallationRestoreNuget.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/LocalBrowserSettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/LocalBrowserSettings.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/LoggingType.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/LoggingType.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/ManageNuget1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/ManageNuget1.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/ManageNuget2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/ManageNuget2.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NUnit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NUnit.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NUnit3TestAdapter.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NUnit3TestAdapter.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NUnitSetup1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NUnitSetup1.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NUnitSetup2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NUnitSetup2.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NewNUnitTest2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NewNUnitTest2.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NewPageModel1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NewPageModel1.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NewPageModel2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NewPageModel2.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NewProject1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NewProject1.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NewProject2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NewProject2.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NewTest1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NewTest1.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/NewTest2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/NewTest2.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/Options.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/Options.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/RestoreNugetPackages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/RestoreNugetPackages.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/ReviewCodeChanges.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/ReviewCodeChanges.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/SpecflowForVisualStudio.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/SpecflowForVisualStudio.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/TestExplorer1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/TestExplorer1.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/ToolAndExtensions.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/ToolAndExtensions.PNG -------------------------------------------------------------------------------- /docs/MAQS_7/resources/VS2019ManageExtensions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/VS2019ManageExtensions.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/add new item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/add new item.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/extendedremotebrowsersettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/extendedremotebrowsersettings.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/logconditions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/logconditions.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/loglevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/loglevel.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/logleveldiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/logleveldiagram.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/loglocation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/loglocation.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/maqsfull.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/maqsfull.jpg -------------------------------------------------------------------------------- /docs/MAQS_7/resources/maqslogo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/maqslogo.ico -------------------------------------------------------------------------------- /docs/MAQS_7/resources/remote browser settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/remote browser settings.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/remotebrowsersettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/remotebrowsersettings.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/root information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/root information.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/time.png -------------------------------------------------------------------------------- /docs/MAQS_7/resources/webdriver hint path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/MAQS_7/resources/webdriver hint path.png -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # MAQS 2 | 3 | ### Version - Select the Version of MAQS 4 | 5 | * [MAQS 6](MAQS_6/Introduction.md) 6 | * [MAQS 7](MAQS_7/Introduction.md) 7 | 8 | ![MAQS](resources/maqsfull.jpg) -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/override.css: -------------------------------------------------------------------------------- 1 | #main { 2 | max-width: 90%; 3 | } 4 | 5 | .markdown-section pre>code 6 | { 7 | background-color: #f7f7f7; 8 | } -------------------------------------------------------------------------------- /docs/resources/maqsfull.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/resources/maqsfull.jpg -------------------------------------------------------------------------------- /docs/resources/maqslogo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magenic/MAQS/0cff03e72c8a88c7c32136ba2bb96c4ee4c2f3fc/docs/resources/maqslogo.ico --------------------------------------------------------------------------------