public void RT12020_AppMasterData() { AddAppIpadPlayer(); var app = AddAppDpt(AppStatus.Any, TestConfig.DptAppVersions[1]); TestStart(); OpenAppsPage(); Click(PageFooter.AddAppInAppsButton); var pathFile = FileManager.GetFileByVersion(TestConfig.TestDependenciesDptAppFolder, TestConfig.TestDependenciesDptAppFile, TestConfig.TestDependenciesMdVersions[0]); FileManager.UploadAsBackgroundTask(pathFile); Assert.IsTrue(IsElementFound(AppsPage.AppTitle), $@"App '{AppTitle.TestDependenciesMd}' has not been imported"); var allPermissions = UserDirectoryApi.GetSupportedPermissions(); var role = UserDirectoryApi.GetRole((long)UserRole.CxmAdmin); UserDirectoryApi.SetRolePermissions(role, allPermissions); RefreshPage(); const string market = "CC"; SendText(AppsPage.Market, market); SubmitForm(); Assert.IsTrue(IsViewMode(), $@"'{AppTitle.TestDependenciesMd}' app should be in view mode on submit"); Click(PageFooter.AddVersionButton); pathFile = FileManager.GetFileByVersion(TestConfig.TestDependenciesDptAppFolder, TestConfig.TestDependenciesDptAppFile, TestConfig.TestDependenciesMdVersions[1]); FileManager.UploadAsBackgroundTask(pathFile); Assert.IsTrue(IsElementEquals(AppsPage.Market, market), $@"Market field should kept value '{market}' on 2nd app version upload"); Assert.IsTrue(IsElementNotFoundQuickly(CommonElement.ValidationError), "Page should have no validation errors on 2nd app version upload"); SendText(AppsPage.Area, "a"); Assert.IsTrue(IsElementNotFoundQuickly(AppsPage.ErrorArea), "Area should have no validation errors"); Assert.IsTrue(IsElementFoundQuickly(AppsPage.ErrorRegion), "Region should have validation error"); Assert.IsTrue(IsElementNotFoundQuickly(AppsPage.ErrorMarket), "Market should have no validation errors"); ClearTextInElement(AppsPage.Market); Assert.IsTrue(IsElementNotFoundQuickly(AppsPage.ErrorArea), "Area should have no validation errors"); Assert.IsTrue(IsElementFoundQuickly(AppsPage.ErrorRegion), "Region should have validation error"); Assert.IsTrue(IsElementFoundQuickly(AppsPage.ErrorMarket), "Market should have validation error"); ClearTextInElement(AppsPage.Area); Assert.IsTrue(IsElementNotFoundQuickly(AppsPage.ErrorArea), "Area should have no validation errors"); Assert.IsTrue(IsElementNotFoundQuickly(AppsPage.ErrorRegion), "Region should have no validation errors"); Assert.IsTrue(IsElementFoundQuickly(AppsPage.ErrorMarket), "Market should have validation error"); SendText(AppsPage.Market, market); SendText(AppsPage.Area, "a"); SendText(AppsPage.Region, "a"); SubmitForm(); Assert.IsTrue(IsViewMode(), $"{AppTitle.TestDependenciesMd} app should be in view mode on submit"); var appId = GetEntityIdFromUrl(); OpenEntityPage(app); EditForm(); SendText(AppsPage.Area, "a"); Assert.IsTrue(IsElementNotFoundQuickly(CommonElement.ValidationError), $"App {AppTitle.Dpt} page should have no validation errors"); Click(PageFooter.CancelButton); OpenEntityPage <AppResponse>(appId); Click(AppsPage.Versions); Click(string.Format(AppsPage.TableRowByText, TestConfig.TestDependenciesMdVersions[1])); Click(PageFooter.DeleteButton); Click(AppsPage.DeleteButton); Click(PageHeader.NavigateBackButton); EditForm(); ClearTextInElement(AppsPage.Region); Assert.IsTrue(IsElementNotFoundQuickly(CommonElement.ValidationError), $"App {AppTitle.Dpt} page should have no validation errors after the latest version delete"); SubmitForm(); Assert.IsTrue(IsViewMode(), $"{AppTitle.TestDependenciesMd} app should be in view mode after the latest version delete and submit"); }
public void RT12010_ItemTypesModels() { TestStart(); OpenAppsPage(); Click(PageFooter.AddAppInAppsButton); var pathFile = FileManager.GetFileByVersion(TestConfig.DptMobileAppFolder, TestConfig.DptMobileAppFile, TestConfig.DptAppVersions[1]); FileManager.Upload(pathFile); Assert.IsTrue(IsEditMode(), $"DPT app v.{TestConfig.DptAppVersions[1]} should be imported without {AppTitle.IpadPlayer} " + "and in edit mode"); var allPermissions = UserDirectoryApi.GetSupportedPermissions(); var role = UserDirectoryApi.GetRole((long)UserRole.CxmAdmin); UserDirectoryApi.SetRolePermissions(role, allPermissions); RefreshPage(); SendText(AppsPage.Market, "AA"); SubmitForm(); Assert.IsTrue(IsViewMode(), $"DPT app v.{TestConfig.DptAppVersions[1]} should be in view mode"); OpenItemsPage(); Click(PageFooter.AddItemButton); DropDownSelect(ItemsPage.TypeDropDown, ItemTypePorscheCar); SendText(ItemsPage.Vin, $"{RandomNumber}55"); SendText(ItemsPage.Title, $"Auto test {RandomNumber}"); ClickUntilShown(ItemsPage.FinanceOfferButton, ItemsPage.FinanceOfferOptionDropDown); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.FinanceOfferOptionDropDown), "Finance Offer > Option drop-down should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.FinanceOfferPrepayment), "Finance Offer > Prepayment should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.FinanceOfferTerm), "Finance Offer > Term should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.FinanceOfferMonthlyRate), "Finance Offer > Monthly Rate should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.FinanceOfferDisclaimer), "Finance Offer > Disclaimer should be shown"); Assert.IsTrue(IsElementNotFoundQuickly(CommonElement.ValidationError), "Finance Offer > No validation errors should be shown"); DropDownSelect(ItemsPage.FinanceOfferOptionDropDown, "Porsche Value S"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferPrepaymentRequired), @"Finance Offer > Error 'Prepayment required' should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferMonthlyRateRequired), @"Finance Offer > Error 'Monthly required' Rate should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferOptionRequired), @"Finance Offer > Error for Option drop-down should be not shown"); SendText(ItemsPage.FinanceOfferPrepayment, "A"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferPrepaymentRequired), @"Finance Offer > Error 'Prepayment required' should be not shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferMonthlyRateRequired), @"Finance Offer > Error 'Monthly required' Rate should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be shown"); SendText(ItemsPage.FinanceOfferTerm, "A"); SendText(ItemsPage.FinanceOfferMonthlyRate, "A"); SendText(ItemsPage.FinanceOfferDisclaimer, "A"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferPrepaymentRequired), @"Finance Offer > Error 'Prepayment required' should be shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferMonthlyRateRequired), @"Finance Offer > Error 'Monthly required' Rate should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferOptionRequired), @"Finance Offer > Error for Option drop-down should be not shown"); ClearTextInElement(ItemsPage.FinanceOfferTerm); ClearTextInElement(ItemsPage.FinanceOfferDisclaimer); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be shown"); ClearTextInElement(ItemsPage.FinanceOfferPrepayment); ClearTextInElement(ItemsPage.FinanceOfferMonthlyRate); DropDownSelect(ItemsPage.FinanceOfferOptionDropDown, string.Empty); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferPrepaymentRequired), @"Finance Offer > Error 'Prepayment required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferMonthlyRateRequired), @"Finance Offer > Error 'Monthly required' Rate should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferOptionRequired), @"Finance Offer > Error for Option drop-down should be not shown"); SendText(ItemsPage.FinanceOfferDisclaimer, "A"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferPrepaymentRequired), @"Finance Offer > Error 'Prepayment required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferMonthlyRateRequired), @"Finance Offer > Error 'Monthly required' Rate should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferOptionRequired), @"Finance Offer > Error for Option drop-down should be not shown"); SubmitForm(); Assert.IsTrue(IsViewMode(), "Item should be successfully saved"); var itemId = GetEntityIdFromUrl(); OpenAppsPage(); Click(PageFooter.AddAppInAppsButton); pathFile = FileManager.GetFileByVersion(TestConfig.DptMobileAppFolder, TestConfig.DptMobileAppFile, TestConfig.DptAppVersions[2]); FileManager.UploadAsBackgroundTask(pathFile); SubmitForm(); Assert.IsTrue(IsViewMode(), $"DPT app v.{TestConfig.DptAppVersions[2]} should be in view mode"); RefreshPage(); OpenEntityPage <Item>(itemId); EditForm(); ClickUntilShown(ItemsPage.FinanceOfferButton, ItemsPage.FinanceOfferOptionDropDown); DropDownSelect(ItemsPage.FinanceOfferOptionDropDown, "Porsche Value S"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferPrepaymentRequired), @"Finance Offer > Error 'Prepayment required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferMonthlyRateRequired), @"Finance Offer > Error 'Monthly required' Rate should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be not shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferOptionRequired), @"Finance Offer > Error for Option drop-down should be not shown"); SendText(ItemsPage.FinanceOfferPrepayment, "A"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferPrepaymentRequired), @"Finance Offer > Error 'Prepayment required' should be not shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferTermRequired), @"Finance Offer > Error 'Term required' should be shown"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorFinanceOfferMonthlyRateRequired), @"Finance Offer > Error 'Monthly required' Rate should be shown"); Assert.IsTrue(IsElementNotFoundQuickly(ItemsPage.ErrorFinanceOfferDisclaimerRequired), @"Finance Offer > Error 'Disclaimer required' should be not shown"); Click(PageFooter.CancelButton); }
public void RT09010_Models() { var newUser = new User { Email = $"Auto{RandomNumber}@ameria.de", Password = CurrentUser.Password }; Parallel.Invoke( () => AccountApi.CreateNewAccount(newUser), () => _role = UserDirectoryApi.SetRolePermissions( _role, "Login", "GetAnyLocation", "ImportApp", "GetAnyApp", "ModifyOwnApp", "ModifyAnyApp", "ImportAppVersion", "DeleteOwnAppVersion", "DeleteAnyAppVersion", "ChangePorscheCar", "ModifyPorschePdfCar", "ModifyPorscheUsedCar", "ViewPorscheCar", "ViewPorschePdfCar", "ViewPorscheUsedCar"), () => AddAppDpt(AppStatus.Any, TestConfig.DptAppVersions[0]) ); UserDirectoryApi.SetUserStatus(newUser, UserStatus.Active); UserDirectoryApi.AddRoleToUser(newUser, _role, TenantTitle.import); CurrentUser = newUser; TestStart(isSelectTenant: false); OpenItemsPage(); Click(PageFooter.AddItemButton); ClickUntilShown(ItemsPage.TypeDropDown, CommonElement.DropDownOptionList); var availableTypes = new List <string> { ItemTypeCars, ItemTypePorscheCar, ItemTypeUsedCar, ItemTypePdfCar }; Assert.IsTrue(AreCollectionsEqual(GetElementsText(CommonElement.DropDownOptionList), availableTypes), "Only following item types should be available: " + string.Join(", ", availableTypes)); OpenAppsPage(); Click(PageFooter.AddAppInAppsButton); var name = FileManager.GetFileByVersion(TestConfig.DptMobileAppFolderRt09010, TestConfig.DptMobileAppFileRt09010, TestConfig.DptAppEarliestVersionRt09010); FileManager.Upload(name); Assert.IsTrue(IsElementFound(AppsPage.YouDontHavePermissionsDialog), @"Error dialog 'You don't have permissions to modify models' should be shown"); Click(AppsPage.OkButton); Assert.IsTrue(IsElementNotFoundQuickly(AppsPage.YouDontHavePermissionsDialog), @"Error dialog 'You don't have permissions to modify models' should be closed"); Assert.IsTrue(IsPageContainsUri(TestConfig.AppsUri), $@"App '{AppName}' should not be uploaded"); OpenItemsPage(); Click(PageFooter.AddItemButton); ClickUntilShown(ItemsPage.TypeDropDown, CommonElement.DropDownOptionList); Assert.IsFalse(AreElementsContainText(CommonElement.DropDownOptionList, AppName), $@"Dropdown Type should not contain '{AppName}'"); Assert.IsTrue(AreCollectionsEqual(GetElementsText(CommonElement.DropDownOptionList), availableTypes), "Only following item types should be available: " + string.Join(", ", availableTypes)); UserDirectoryApi.SetRolePermissions( _role, "Login", "GetAnyLocation", "ImportApp", "GetAnyApp", "ModifyOwnApp", "ModifyAnyApp", "ImportAppVersion", "DeleteOwnAppVersion", "DeleteAnyAppVersion", "ChangePorscheCar", "ModifyPorschePdfCar", "ModifyPorscheUsedCar", "ViewPorscheCar", "ViewPorschePdfCar", "ViewPorscheUsedCar", "ModifyModel"); OpenAppsPage(); RefreshPage(); Click(PageFooter.AddAppInAppsButton); FileManager.Upload(name); Assert.IsTrue(IsElementFound(AppsPage.YouDontHavePermissionsDialog), @"Error dialog 'You don't have permissions to create models' should be shown"); Click(AppsPage.OkButton); Assert.IsTrue(IsPageContainsUri(TestConfig.AppsUri), $@"App '{AppName}' should not be uploaded"); OpenItemsPage(); Click(PageFooter.AddItemButton); ClickUntilShown(ItemsPage.TypeDropDown, CommonElement.DropDownOptionList); Assert.IsFalse(AreElementsContainText(CommonElement.DropDownOptionList, AppName), $@"Dropdown Type should not contain '{AppName}'"); Assert.IsTrue(AreCollectionsEqual(GetElementsText(CommonElement.DropDownOptionList), availableTypes), "Only following item types should be available: " + string.Join(", ", availableTypes)); UserDirectoryApi.SetRolePermissions( _role, "Login", "GetAnyLocation", "ImportApp", "GetAnyApp", "ModifyOwnApp", "ModifyAnyApp", "ImportAppVersion", "DeleteOwnAppVersion", "DeleteAnyAppVersion", "ChangePorscheCar", "ModifyPorschePdfCar", "ModifyPorscheUsedCar", "ViewPorscheCar", "ViewPorschePdfCar", "ViewPorscheUsedCar", "CreateModel"); OpenAppsPage(); RefreshPage(); Click(PageFooter.AddAppInAppsButton); FileManager.Upload(name); Assert.IsTrue(IsElementFound(AppsPage.AppTitle) && AreElementsContainText(AppsPage.AppTitle, AppName), $@"App '{AppName}' should be uploaded"); OpenItemsPage(); Click(PageFooter.AddItemButton); ClickUntilShown(ItemsPage.TypeDropDown, CommonElement.DropDownOptionList); Assert.IsFalse(AreElementsContainText(CommonElement.DropDownOptionList, AppName), $@"Dropdown Type should not contain '{AppName}'"); Assert.IsTrue(AreCollectionsEqual(GetElementsText(CommonElement.DropDownOptionList), availableTypes), "Only following item types should be available: " + string.Join(", ", availableTypes)); UserDirectoryApi.SetRolePermissions( _role, "Login", "GetAnyLocation", "ImportApp", "GetAnyApp", "ModifyOwnApp", "ModifyAnyApp", "ImportAppVersion", "DeleteOwnAppVersion", "DeleteAnyAppVersion", "ChangePorscheCar", "ModifyPorschePdfCar", "ModifyPorscheUsedCar", "ViewPorscheCar", "ViewPorschePdfCar", "ViewPorscheUsedCar", "CreateModel", "ViewTestmodel1", "ModifyTestmodel1"); OpenItemsPage(); RefreshPage(); Click(PageFooter.AddItemButton); ClickUntilShown(ItemsPage.TypeDropDown, CommonElement.DropDownOptionList); availableTypes.Add(ItemTypeTestModel1); Assert.IsTrue(AreCollectionsEqual(GetElementsText(CommonElement.DropDownOptionList), availableTypes), "Only following item types should be available: " + string.Join(", ", availableTypes)); DropDownSelect(ItemsPage.TypeDropDown, ItemTypeTestModel1); Assert.IsTrue(CountElements(ItemsPage.ErrorPlaceholder) == 2, "Title and Picture fields must have validation errors"); SendText(ItemsPage.Title, "12345678901"); Assert.IsTrue(IsElementFoundQuickly(ItemsPage.ErrorNotMore10Chars), @"Error 'Not more than 10 characters are allowed' should be shown"); Click(PageFooter.CancelButton); OpenAppsPage(); Click(PageFooter.AddAppInAppsButton); name = FileManager.GetFileByVersion(TestConfig.DptMobileAppFolderRt09010, TestConfig.DptMobileAppFileRt09010, TestConfig.DptAppLatestVersionRt09010); FileManager.Upload(name); Assert.IsTrue(IsElementFound(AppsPage.YouDontHavePermissionsDialog), @"Error dialog 'You don't have permissions to create/modify models' should be shown"); Click(AppsPage.OkButton); Assert.IsTrue(IsElementNotFoundQuickly(AppsPage.YouDontHavePermissionsDialog), @"Error dialog 'You don't have permissions to create/modify models' should be closed"); Assert.IsTrue(IsPageContainsUri(TestConfig.AppsUri), $@"App '{AppName}' should not be uploaded"); OpenItemsPage(); Click(PageFooter.AddItemButton); DropDownSelect(ItemsPage.TypeDropDown, ItemTypeTestModel1); Assert.IsTrue(CountElements(ItemsPage.ErrorPlaceholder) == 2, "Title and Picture fields must have validation errors"); UserDirectoryApi.SetRolePermissions( _role, "Login", "GetAnyLocation", "ImportApp", "GetAnyApp", "ModifyOwnApp", "ModifyAnyApp", "ImportAppVersion", "DeleteOwnAppVersion", "DeleteAnyAppVersion", "ChangePorscheCar", "ModifyPorschePdfCar", "ModifyPorscheUsedCar", "ViewPorscheCar", "ViewPorschePdfCar", "ViewPorscheUsedCar", "CreateModel", "ViewTestmodel1", "ModifyTestmodel1", "ModifyModel"); Click(PageHeader.PageAppsButton); Click(ItemsPage.OkButton); Click(PageFooter.AddAppInAppsButton); FileManager.Upload(name); Assert.IsTrue(IsElementFound(AppsPage.AppTitle) && AreElementsContainText(AppsPage.AppTitle, AppName), $@"App '{AppName}' should be uploaded"); OpenItemsPage(); RefreshPage(); Click(PageFooter.AddItemButton); DropDownSelect(ItemsPage.TypeDropDown, ItemTypeTestModel1); Assert.IsTrue(CountElements(ItemsPage.ErrorPlaceholder) == 1, "AppTitle field only must have validation error"); SendText(ItemsPage.Title, "12345678901"); Assert.IsTrue(IsElementNotFoundQuickly(CommonElement.ValidationError), "No validation errors should be shown"); SubmitForm(); Assert.IsTrue(IsViewMode(), "Item should be saved successfully"); OpenItemsPage(); ClickUntilShown(PageHeader.FilterDropDown, CommonElement.DropDownOptionList); Assert.IsTrue(AreElementsContainText(CommonElement.DropDownOptionList, ItemTypeTestModel1), $@"Filter dropdown should contain '{ItemTypeTestModel1}'"); }