add test on propagated alarm
This commit is contained in:
parent
a6bee93d2d
commit
982f6e23fb
@ -29,6 +29,7 @@ import io.restassured.specification.RequestSpecification;
|
|||||||
import org.thingsboard.server.common.data.Customer;
|
import org.thingsboard.server.common.data.Customer;
|
||||||
import org.thingsboard.server.common.data.Device;
|
import org.thingsboard.server.common.data.Device;
|
||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
|
import org.thingsboard.server.common.data.Tenant;
|
||||||
import org.thingsboard.server.common.data.User;
|
import org.thingsboard.server.common.data.User;
|
||||||
import org.thingsboard.server.common.data.alarm.Alarm;
|
import org.thingsboard.server.common.data.alarm.Alarm;
|
||||||
import org.thingsboard.server.common.data.asset.AssetProfile;
|
import org.thingsboard.server.common.data.asset.AssetProfile;
|
||||||
@ -432,4 +433,16 @@ public class TestRestClient {
|
|||||||
public String getRefreshToken() {
|
public String getRefreshToken() {
|
||||||
return refreshToken;
|
return refreshToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PageData<Tenant> getTenants(PageLink pageLink) {
|
||||||
|
Map<String, String> params = new HashMap<>();
|
||||||
|
addPageLinkToParam(params, pageLink);
|
||||||
|
return given().spec(requestSpec).queryParams(params)
|
||||||
|
.get("/api/tenants")
|
||||||
|
.then()
|
||||||
|
.statusCode(HTTP_OK)
|
||||||
|
.extract()
|
||||||
|
.as(new TypeRef<PageData<Tenant>>() {
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
package org.thingsboard.server.msa.ui.pages;
|
||||||
|
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.openqa.selenium.WebElement;
|
||||||
|
import org.thingsboard.server.msa.ui.base.AbstractBasePage;
|
||||||
|
|
||||||
|
public class AlarmDetailsViewElements extends AbstractBasePage {
|
||||||
|
public AlarmDetailsViewElements(WebDriver driver) {
|
||||||
|
super(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final String ASSIGN_FIELD = "//mat-label[contains(text(),'Assignee')]/parent::label/following-sibling::input";
|
||||||
|
private static final String USER_FROM_DROP_DOWN = "//div[@class='user-display-name']/span[text() = '%s']";
|
||||||
|
private static final String CLOSE_VIEW_BTN = "//mat-dialog-container//mat-icon[contains(text(),'close')]/parent::button";
|
||||||
|
private static final String UNASSIGNED_BTN = "//div[@role='listbox']//mat-icon[text() = 'account_circle']/following-sibling::span";
|
||||||
|
|
||||||
|
public WebElement assignField() {
|
||||||
|
return waitUntilElementToBeClickable(ASSIGN_FIELD);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebElement userFromAssignDropdown(String emailOrName) {
|
||||||
|
return waitUntilElementToBeClickable(String.format(USER_FROM_DROP_DOWN, emailOrName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebElement closeViewBtn() {
|
||||||
|
return waitUntilElementToBeClickable(CLOSE_VIEW_BTN);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebElement unassignedBtn() {
|
||||||
|
return waitUntilElementToBeClickable(UNASSIGNED_BTN);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
package org.thingsboard.server.msa.ui.pages;
|
||||||
|
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|
||||||
|
public class AlarmDetailsViewHelper extends AlarmDetailsViewElements{
|
||||||
|
public AlarmDetailsViewHelper(WebDriver driver) {
|
||||||
|
super(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void assignAlarmTo(String emailOrName) {
|
||||||
|
assignField().click();
|
||||||
|
userFromAssignDropdown(emailOrName).click();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unassignedAlarm() {
|
||||||
|
assignField().click();
|
||||||
|
unassignedBtn().click();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,3 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* Copyright © 2016-2023 The Thingsboard Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
package org.thingsboard.server.msa.ui.pages;
|
package org.thingsboard.server.msa.ui.pages;
|
||||||
|
|
||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
@ -10,14 +25,17 @@ public class AlarmElements extends OtherPageElements{
|
|||||||
super(driver);
|
super(driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String ASSIGN_BTN = "//mat-icon[contains(text(),'keyboard_arrow_down')]/parent::button";
|
private static final String ASSIGN_BTN = "//span[text() = '%s']/ancestor::mat-row//mat-icon[contains(text(),'keyboard_arrow_down')]/parent::button";
|
||||||
private static final String USER_ASSIGN_DROPDOWN = "//div[@class='user-display-name']/span[contains(text(),'%s')]";
|
private static final String USER_ASSIGN_DROPDOWN = "//div[@class='user-display-name']/span[text() = '%s']";
|
||||||
private static final String ASSIGN_USERS_DISPLAY_NAME = "//div[@class='user-display-name']/span";
|
protected static final String ASSIGN_USERS_DISPLAY_NAME = "//div[@class='user-display-name']/span";
|
||||||
private static final String ASSIGN_USER_DISPLAY_NAME = "//span[@class='user-display-name'][contains(text(),'%s')]";
|
private static final String ASSIGN_USER_DISPLAY_NAME = "//span[@class='user-display-name'][contains(text(),'%s')]";
|
||||||
private static final String SEARCH_FIELD = "//input[@placeholder='Search users']";
|
private static final String SEARCH_FIELD = "//input[@placeholder='Search users']";
|
||||||
|
private static final String UNASSIGNED_BTN = "//div[@role='listbox']//mat-icon[text() = 'account_circle']/following-sibling::span";
|
||||||
|
private static final String UNASSIGNED = "//span[text() = '%s']/ancestor::mat-row//span[@class='assignee-cell']/mat-icon[text() = 'account_circle']/following-sibling::span";
|
||||||
|
private static final String ALARM_DETAILS_BTN = "//span[text() = '%s']/ancestor::mat-row//mat-icon[contains(text(),'more_horiz')]/parent::button";
|
||||||
|
|
||||||
public WebElement assignBtn() {
|
public WebElement assignBtn(String type) {
|
||||||
return waitUntilElementToBeClickable(ASSIGN_BTN);
|
return waitUntilElementToBeClickable(String.format(ASSIGN_BTN, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
public WebElement userFromAssignDropDown(String userEmail) {
|
public WebElement userFromAssignDropDown(String userEmail) {
|
||||||
@ -35,4 +53,16 @@ public class AlarmElements extends OtherPageElements{
|
|||||||
public WebElement searchUserField() {
|
public WebElement searchUserField() {
|
||||||
return waitUntilElementToBeClickable(SEARCH_FIELD);
|
return waitUntilElementToBeClickable(SEARCH_FIELD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WebElement unassignedBtn() {
|
||||||
|
return waitUntilElementToBeClickable(UNASSIGNED_BTN);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebElement unassigned(String alarmType) {
|
||||||
|
return waitUntilVisibilityOfElementLocated(String.format(UNASSIGNED, alarmType));
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebElement alarmDetailsBtn(String alarmType) {
|
||||||
|
return waitUntilElementToBeClickable(String.format(ALARM_DETAILS_BTN, alarmType));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* Copyright © 2016-2023 The Thingsboard Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
package org.thingsboard.server.msa.ui.pages;
|
package org.thingsboard.server.msa.ui.pages;
|
||||||
|
|
||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
import org.openqa.selenium.WebElement;
|
import org.openqa.selenium.WebElement;
|
||||||
|
import org.thingsboard.server.msa.ui.utils.Const;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -12,11 +27,21 @@ public class AlarmHelper extends AlarmElements {
|
|||||||
super(driver);
|
super(driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void assignTo(String user) {
|
public void assignAlarmTo(String alarmType, String user) {
|
||||||
jsClick(assignBtn());
|
jsClick(assignBtn(alarmType));
|
||||||
userFromAssignDropDown(user).click();
|
userFromAssignDropDown(user).click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void unassignedAlarm(String alarmType) {
|
||||||
|
assignBtn(alarmType).click();
|
||||||
|
unassignedBtn().click();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void searchAlarm(String alarmType, String emailOrName) {
|
||||||
|
assignBtn(alarmType).click();
|
||||||
|
searchUserField().sendKeys(emailOrName);
|
||||||
|
}
|
||||||
|
|
||||||
private List<String> users;
|
private List<String> users;
|
||||||
|
|
||||||
public void setUsers() {
|
public void setUsers() {
|
||||||
@ -29,4 +54,9 @@ public class AlarmHelper extends AlarmElements {
|
|||||||
public List<String> getUsers() {
|
public List<String> getUsers() {
|
||||||
return users;
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void assertUsersForAssignIsNotPresent() {
|
||||||
|
sleep(1);
|
||||||
|
elementsIsNotPresent(ASSIGN_USERS_DISPLAY_NAME);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,14 +32,16 @@ public class CustomerPageElements extends OtherPageElementsHelper {
|
|||||||
private static final String TITLES = "//mat-cell[contains(@class,'cdk-column-title')]/span";
|
private static final String TITLES = "//mat-cell[contains(@class,'cdk-column-title')]/span";
|
||||||
protected static final String EDIT_MENU_DASHBOARD_FIELD = "//input[@formcontrolname='dashboard']";
|
protected static final String EDIT_MENU_DASHBOARD_FIELD = "//input[@formcontrolname='dashboard']";
|
||||||
private static final String EDIT_MENU_DASHBOARD = "//div[@class='cdk-overlay-pane']//span/span[contains(text(),'%s')]";
|
private static final String EDIT_MENU_DASHBOARD = "//div[@class='cdk-overlay-pane']//span/span[contains(text(),'%s')]";
|
||||||
private static final String MANAGE_CUSTOMERS_USERS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' account_circle')]";
|
private static final String MANAGE_CUSTOMERS_USERS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' account_circle')]/parent::button";
|
||||||
private static final String MANAGE_CUSTOMERS_ASSETS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' domain')]/parent::button";
|
private static final String MANAGE_CUSTOMERS_ASSETS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' domain')]/parent::button";
|
||||||
private static final String MANAGE_CUSTOMERS_DEVICES_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'devices_other')]/parent::button";
|
private static final String MANAGE_CUSTOMERS_DEVICES_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'devices_other')]/parent::button";
|
||||||
private static final String MANAGE_CUSTOMERS_DASHBOARDS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'dashboard')]/parent::button";
|
private static final String MANAGE_CUSTOMERS_DASHBOARDS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'dashboard')]/parent::button";
|
||||||
private static final String MANAGE_CUSTOMERS_EDGE_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'router')]/parent::button";
|
private static final String MANAGE_CUSTOMERS_EDGE_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'router')]/parent::button";
|
||||||
private static final String ADD_USER_EMAIL = "//tb-add-user-dialog//input[@formcontrolname='email']";
|
private static final String ADD_USER_EMAIL = "//tb-add-user-dialog//input[@formcontrolname='email']";
|
||||||
private static final String ACTIVATE_WINDOW_OK_BTN = "//span[contains(text(),'OK')]";
|
private static final String ACTIVATE_WINDOW_OK_BTN = "//span[contains(text(),'OK')]";
|
||||||
private static final String USER_LOGIN_BTN = "//mat-icon[@data-mat-icon-name='login']";
|
private static final String USER_LOGIN_BTN = "//mat-icon[@data-mat-icon-name='login']/parent::button";
|
||||||
|
private static final String USER_LOGIN_BTN_BY_EMAIL = "//mat-cell[contains(@class,'email')]/span[contains(text(),'%s')]" +
|
||||||
|
"/ancestor::mat-row//mat-icon[@data-mat-icon-name='login']/parent::button";
|
||||||
private static final String USERS_WIDGET = "//tb-widget";
|
private static final String USERS_WIDGET = "//tb-widget";
|
||||||
private static final String SELECT_COUNTRY_MENU = "//mat-form-field//mat-select[@formcontrolname='country']";
|
private static final String SELECT_COUNTRY_MENU = "//mat-form-field//mat-select[@formcontrolname='country']";
|
||||||
private static final String COUNTRIES = "//span[@class='mdc-list-item__primary-text']";
|
private static final String COUNTRIES = "//span[@class='mdc-list-item__primary-text']";
|
||||||
@ -148,6 +150,10 @@ public class CustomerPageElements extends OtherPageElementsHelper {
|
|||||||
return waitUntilElementToBeClickable(USER_LOGIN_BTN);
|
return waitUntilElementToBeClickable(USER_LOGIN_BTN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WebElement getUserLoginBtnByEmail(String email) {
|
||||||
|
return waitUntilElementToBeClickable(String.format(USER_LOGIN_BTN_BY_EMAIL, email));
|
||||||
|
}
|
||||||
|
|
||||||
public WebElement usersWidget() {
|
public WebElement usersWidget() {
|
||||||
return waitUntilVisibilityOfElementLocated(USERS_WIDGET);
|
return waitUntilVisibilityOfElementLocated(USERS_WIDGET);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* Copyright © 2016-2023 The Thingsboard Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
package org.thingsboard.server.msa.ui.pages;
|
package org.thingsboard.server.msa.ui.pages;
|
||||||
|
|
||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|||||||
@ -1,3 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* Copyright © 2016-2023 The Thingsboard Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
package org.thingsboard.server.msa.ui.pages;
|
package org.thingsboard.server.msa.ui.pages;
|
||||||
|
|
||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|||||||
@ -25,10 +25,18 @@ public class LoginPageHelper extends LoginPageElements {
|
|||||||
super(driver);
|
super(driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void authorizationTenant() {
|
public void login(String username, String password) {
|
||||||
emailField().sendKeys(Const.TENANT_EMAIL);
|
emailField().sendKeys(username);
|
||||||
passwordField().sendKeys(Const.TENANT_PASSWORD);
|
passwordField().sendKeys(password);
|
||||||
submitBtn().click();
|
submitBtn().click();
|
||||||
waitUntilUrlContainsText("/home");
|
waitUntilUrlContainsText("/home");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void authorizationTenant() {
|
||||||
|
login(Const.TENANT_EMAIL, Const.TENANT_PASSWORD);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void authorizationCustomer() {
|
||||||
|
login("customer@thingsboard.org", "customer");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,110 +0,0 @@
|
|||||||
package org.thingsboard.server.msa.ui.tests;
|
|
||||||
|
|
||||||
import org.testng.Assert;
|
|
||||||
import org.testng.annotations.AfterMethod;
|
|
||||||
import org.testng.annotations.BeforeClass;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
import org.thingsboard.server.common.data.id.AlarmId;
|
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
|
||||||
import org.thingsboard.server.common.data.id.UserId;
|
|
||||||
import org.thingsboard.server.msa.prototypes.DevicePrototypes;
|
|
||||||
import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest;
|
|
||||||
import org.thingsboard.server.msa.ui.pages.AlarmHelper;
|
|
||||||
import org.thingsboard.server.msa.ui.pages.DevicePageHelper;
|
|
||||||
import org.thingsboard.server.msa.ui.pages.LoginPageHelper;
|
|
||||||
import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper;
|
|
||||||
import org.thingsboard.server.msa.ui.utils.DataProviderCredential;
|
|
||||||
import org.thingsboard.server.msa.ui.utils.EntityPrototypes;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
||||||
|
|
||||||
public class AssignDetailsTab extends AbstractDriverBaseTest {
|
|
||||||
|
|
||||||
AlarmId alarmId;
|
|
||||||
DeviceId deviceId;
|
|
||||||
UserId userId;
|
|
||||||
String deviceName;
|
|
||||||
SideBarMenuViewHelper sideBarMenuView;
|
|
||||||
AlarmHelper alarmPage;
|
|
||||||
DevicePageHelper devicePage;
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public void generateAlarm() {
|
|
||||||
new LoginPageHelper(driver).authorizationTenant();
|
|
||||||
sideBarMenuView = new SideBarMenuViewHelper(driver);
|
|
||||||
alarmPage = new AlarmHelper(driver);
|
|
||||||
devicePage = new DevicePageHelper(driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterMethod
|
|
||||||
public void deleteAlarm() {
|
|
||||||
testRestClient.deleteAlarm(alarmId);
|
|
||||||
testRestClient.deleteDevice(deviceId);
|
|
||||||
if (userId != null) {
|
|
||||||
testRestClient.deleteUser(userId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(dataProviderClass = DataProviderCredential.class, dataProvider = "assignTo")
|
|
||||||
public void assignAlarmTo(String user) {
|
|
||||||
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
|
||||||
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
|
||||||
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId)).getId();
|
|
||||||
|
|
||||||
sideBarMenuView.goToDevicesPage();
|
|
||||||
devicePage.openDeviceAlarms(deviceName);
|
|
||||||
alarmPage.assignTo(user);
|
|
||||||
|
|
||||||
Assert.assertTrue(alarmPage.assignedUser(user).isDisplayed());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void reassignAlarm() {
|
|
||||||
testRestClient.postCustomer(EntityPrototypes.defaultCustomerPrototype("TestCustomer"));
|
|
||||||
userId = testRestClient.postUser(EntityPrototypes.defaultUser(getCustomerByName("TestCustomer").getId())).getId();
|
|
||||||
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
|
||||||
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
|
||||||
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId, userId)).getId();
|
|
||||||
|
|
||||||
sideBarMenuView.goToDevicesPage();
|
|
||||||
devicePage.openDeviceAlarms(deviceName);
|
|
||||||
alarmPage.assignTo("customer@thingsboard.org");
|
|
||||||
|
|
||||||
Assert.assertTrue(alarmPage.assignedUser("customer@thingsboard.org").isDisplayed());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void searchByEmail() {
|
|
||||||
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
|
||||||
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
|
||||||
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId)).getId();
|
|
||||||
|
|
||||||
sideBarMenuView.goToDevicesPage();
|
|
||||||
devicePage.openDeviceAlarms(deviceName);
|
|
||||||
alarmPage.assignBtn().click();
|
|
||||||
alarmPage.searchUserField().sendKeys("customer@thingsboard.org");
|
|
||||||
alarmPage.setUsers();
|
|
||||||
|
|
||||||
assertThat(alarmPage.getUsers()).contains("customer@thingsboard.org");
|
|
||||||
alarmPage.assignUsers().forEach(u -> assertThat(u.isDisplayed()).isTrue());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void searchByName() {
|
|
||||||
String name = "usik";
|
|
||||||
|
|
||||||
userId = testRestClient.postUser(EntityPrototypes.defaultUser(getCustomerByName("Customer A").getId(), name)).getId();
|
|
||||||
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
|
||||||
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
|
||||||
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId)).getId();
|
|
||||||
|
|
||||||
sideBarMenuView.goToDevicesPage();
|
|
||||||
devicePage.openDeviceAlarms(deviceName);
|
|
||||||
alarmPage.assignBtn().click();
|
|
||||||
alarmPage.searchUserField().sendKeys(name);
|
|
||||||
alarmPage.setUsers();
|
|
||||||
|
|
||||||
assertThat(alarmPage.getUsers()).contains(name);
|
|
||||||
alarmPage.assignUsers().forEach(u -> assertThat(u.isDisplayed()).isTrue());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
package org.thingsboard.server.msa.ui.tests.assignee;
|
||||||
|
|
||||||
|
import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest;
|
||||||
|
|
||||||
|
abstract public class AbstractAssignByCustomerTest extends AbstractDriverBaseTest {
|
||||||
|
}
|
||||||
@ -0,0 +1,117 @@
|
|||||||
|
package org.thingsboard.server.msa.ui.tests.assignee;
|
||||||
|
|
||||||
|
import org.openqa.selenium.WebElement;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.AfterMethod;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.BeforeMethod;
|
||||||
|
import org.testng.annotations.DataProvider;
|
||||||
|
import org.thingsboard.server.common.data.id.AlarmId;
|
||||||
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
|
import org.thingsboard.server.common.data.id.UserId;
|
||||||
|
import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest;
|
||||||
|
import org.thingsboard.server.msa.ui.pages.AlarmDetailsViewHelper;
|
||||||
|
import org.thingsboard.server.msa.ui.pages.AlarmHelper;
|
||||||
|
import org.thingsboard.server.msa.ui.pages.CustomerPageHelper;
|
||||||
|
import org.thingsboard.server.msa.ui.pages.DevicePageHelper;
|
||||||
|
import org.thingsboard.server.msa.ui.pages.LoginPageHelper;
|
||||||
|
import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper;
|
||||||
|
import org.thingsboard.server.msa.ui.utils.EntityPrototypes;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.thingsboard.server.msa.ui.base.AbstractBasePage.random;
|
||||||
|
|
||||||
|
abstract public class AbstractAssignTest extends AbstractDriverBaseTest {
|
||||||
|
|
||||||
|
protected AlarmId alarmId;
|
||||||
|
protected AlarmId assignedAlarmId;
|
||||||
|
protected AlarmId propageteAlarmId;
|
||||||
|
protected AlarmId propageteAssigneAlarmId;
|
||||||
|
protected AlarmId tenantAssigneAlarmId;
|
||||||
|
protected DeviceId deviceId;
|
||||||
|
protected UserId userId;
|
||||||
|
protected UserId userWithNameId;
|
||||||
|
// protected TenantId tenantId = testRestClient.getTenants(pageLink).getData().get(0).getId();
|
||||||
|
protected CustomerId customerId;
|
||||||
|
protected String deviceName;
|
||||||
|
protected SideBarMenuViewHelper sideBarMenuView;
|
||||||
|
protected AlarmHelper alarmPage;
|
||||||
|
protected DevicePageHelper devicePage;
|
||||||
|
protected AlarmDetailsViewHelper alarmDetailsView;
|
||||||
|
CustomerPageHelper customerPage;
|
||||||
|
|
||||||
|
protected String name = "User";
|
||||||
|
protected String customerTitle = "Customer" + random();
|
||||||
|
protected String userEmail = random() + "@thingsboard.org";
|
||||||
|
protected String userWithNameEmail = random() + "@thingsboard.org";
|
||||||
|
protected String alarm = "Test alarm 1";
|
||||||
|
protected String assignedAlarm = "Test alarm 2";
|
||||||
|
protected String propagateAlarm = "Test propagated alarm 1";
|
||||||
|
protected String propagateAssignedAlarm = "Test propagated alarm 2";
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void generateTestEntities() {
|
||||||
|
new LoginPageHelper(driver).authorizationTenant();
|
||||||
|
sideBarMenuView = new SideBarMenuViewHelper(driver);
|
||||||
|
alarmPage = new AlarmHelper(driver);
|
||||||
|
devicePage = new DevicePageHelper(driver);
|
||||||
|
alarmDetailsView = new AlarmDetailsViewHelper(driver);
|
||||||
|
customerPage = new CustomerPageHelper(driver);
|
||||||
|
|
||||||
|
customerId = testRestClient.postCustomer(EntityPrototypes.defaultCustomerPrototype(customerTitle)).getId();
|
||||||
|
userId = testRestClient.postUser(EntityPrototypes.defaultUser(userEmail, getCustomerByName(customerTitle).getId())).getId();
|
||||||
|
userWithNameId = testRestClient.postUser(EntityPrototypes.defaultUser(userWithNameEmail, getCustomerByName(customerTitle).getId(), name)).getId();
|
||||||
|
deviceName = testRestClient.postDevice("", EntityPrototypes.defaultDevicePrototype("", customerId)).getName();
|
||||||
|
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeMethod
|
||||||
|
public void generateTestAlarms() {
|
||||||
|
if (getJwtTokenFromLocalStorage() == null) {
|
||||||
|
new LoginPageHelper(driver).authorizationTenant();
|
||||||
|
}
|
||||||
|
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId, alarm)).getId();
|
||||||
|
assignedAlarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId, assignedAlarm, userId)).getId();
|
||||||
|
propageteAlarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId, propagateAlarm, true)).getId();
|
||||||
|
propageteAssigneAlarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId, propagateAssignedAlarm, userId, true)).getId();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void deleteTestEntities() {
|
||||||
|
testRestClient.deleteDevice(deviceId);
|
||||||
|
testRestClient.deleteCustomer(customerId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterMethod
|
||||||
|
public void deleteTestAlarms() {
|
||||||
|
testRestClient.deleteAlarm(alarmId);
|
||||||
|
testRestClient.deleteAlarm(assignedAlarmId);
|
||||||
|
testRestClient.deleteAlarm(propageteAlarmId);
|
||||||
|
testRestClient.deleteAlarm(propageteAssigneAlarmId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loginByUser(String userEmail) {
|
||||||
|
sideBarMenuView.customerBtn().click();
|
||||||
|
customerPage.manageCustomersUserBtn(customerTitle).click();
|
||||||
|
customerPage.getUserLoginBtnByEmail(userEmail).click();
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider
|
||||||
|
public Object[][] alarms() {
|
||||||
|
return new Object[][]{
|
||||||
|
{alarm},
|
||||||
|
{propagateAlarm}};
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider
|
||||||
|
public Object[][] assignedAlarms() {
|
||||||
|
return new Object[][]{
|
||||||
|
{assignedAlarm},
|
||||||
|
{propagateAssignedAlarm}};
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
package org.thingsboard.server.msa.ui.tests.assignee;
|
||||||
|
|
||||||
|
public class AssignByCustomerTest extends AbstractAssignByCustomerTest{
|
||||||
|
}
|
||||||
@ -0,0 +1,209 @@
|
|||||||
|
/**
|
||||||
|
* Copyright © 2016-2023 The Thingsboard Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.thingsboard.server.msa.ui.tests.assignee;
|
||||||
|
|
||||||
|
import org.junit.platform.commons.function.Try;
|
||||||
|
import org.openqa.selenium.html5.WebStorage;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
import org.thingsboard.server.msa.ui.utils.Const;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
public class AssignDetailsTab extends AbstractAssignTest {
|
||||||
|
|
||||||
|
/*@BeforeMethod
|
||||||
|
public void openAlarmView() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
@Test(dataProvider = "alarms")
|
||||||
|
public void assignAlarmToYourself(String alarm) {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignAlarmTo(alarm, Const.TENANT_EMAIL);
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(Const.TENANT_EMAIL).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dataProvider = "alarms")
|
||||||
|
public void assignAlarmToAnotherUser(String alarm) {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignAlarmTo(alarm, userEmail);
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(userEmail).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dataProvider = "assignedAlarms")
|
||||||
|
public void unassignedAlarm(String assignedAlarm) {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.unassignedAlarm(assignedAlarm);
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.unassigned(assignedAlarm).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dataProvider = "assignedAlarms")
|
||||||
|
public void reassignAlarm(String assignedAlarm) {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignAlarmTo(assignedAlarm, Const.TENANT_EMAIL);
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(Const.TENANT_EMAIL).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void searchByEmail() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.searchAlarm(alarm, Const.TENANT_EMAIL);
|
||||||
|
alarmPage.setUsers();
|
||||||
|
|
||||||
|
assertThat(alarmPage.getUsers()).hasSize(1).contains(Const.TENANT_EMAIL);
|
||||||
|
alarmPage.assignUsers().forEach(u -> assertThat(u.isDisplayed()).isTrue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void searchByName() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.searchAlarm(alarm, name);
|
||||||
|
alarmPage.setUsers();
|
||||||
|
|
||||||
|
assertThat(alarmPage.getUsers()).hasSize(1).contains(name);
|
||||||
|
alarmPage.assignUsers().forEach(u -> assertThat(u.isDisplayed()).isTrue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void assignAlarmToYourselfFromDetails() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.alarmDetailsBtn(alarm).click();
|
||||||
|
alarmDetailsView.assignAlarmTo(Const.TENANT_EMAIL);
|
||||||
|
alarmDetailsView.closeViewBtn().click();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(Const.TENANT_EMAIL).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void assignAlarmToAnotherUserFromDetails() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.alarmDetailsBtn(alarm).click();
|
||||||
|
alarmDetailsView.assignAlarmTo(userEmail);
|
||||||
|
alarmDetailsView.closeViewBtn().click();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(userEmail).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void unassignedAlarmFromDetails() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.alarmDetailsBtn(assignedAlarm).click();
|
||||||
|
alarmDetailsView.unassignedAlarm();
|
||||||
|
alarmDetailsView.closeViewBtn().click();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.unassigned(assignedAlarm).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void reassignAlarmFromDetails() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.alarmDetailsBtn(assignedAlarm).click();
|
||||||
|
alarmDetailsView.assignAlarmTo(Const.TENANT_EMAIL);
|
||||||
|
alarmDetailsView.closeViewBtn().click();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(Const.TENANT_EMAIL).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void assignAlarmToYourselfCustomer() {
|
||||||
|
loginByUser(userEmail);
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignAlarmTo(alarm, userEmail);
|
||||||
|
clearStorage();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(userEmail).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void reassignAlarmByCustomerFromAnotherCustomerUser() {
|
||||||
|
loginByUser(userWithNameEmail);
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignAlarmTo(assignedAlarm, name);
|
||||||
|
clearStorage();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.assignedUser(name).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void unassignedAlarmFromCustomer() {
|
||||||
|
loginByUser(userWithNameEmail);
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.unassignedAlarm(assignedAlarm);
|
||||||
|
clearStorage();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.unassigned(assignedAlarm).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void unassignedAlarmFromAnotherUserFromCustomer() {
|
||||||
|
loginByUser(userEmail);
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.unassignedAlarm(assignedAlarm);
|
||||||
|
clearStorage();
|
||||||
|
|
||||||
|
Assert.assertTrue(alarmPage.unassigned(assignedAlarm).isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void checkTheDisplayOfNamesEmailsFromCustomer() {
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignAlarmTo(alarm, Const.TENANT_EMAIL);
|
||||||
|
loginByUser(userEmail);
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignBtn(alarm).click();
|
||||||
|
try {
|
||||||
|
alarmPage.assertUsersForAssignIsNotPresent();
|
||||||
|
} finally {
|
||||||
|
clearStorage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebStorage getWebStorage() {
|
||||||
|
if (driver instanceof WebStorage) {
|
||||||
|
return (WebStorage) driver;
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("This test expects the driver to implement WebStorage");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearStorage() {
|
||||||
|
getWebStorage().getLocalStorage().clear();
|
||||||
|
getWebStorage().getSessionStorage().clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -150,10 +150,4 @@ public class DataProviderCredential {
|
|||||||
{description, Keys.CONTROL + "A" + Keys.BACK_SPACE, ""}};
|
{description, Keys.CONTROL + "A" + Keys.BACK_SPACE, ""}};
|
||||||
}
|
}
|
||||||
|
|
||||||
@DataProvider
|
|
||||||
public static Object[][] assignTo() {
|
|
||||||
return new Object[][]{
|
|
||||||
{Const.TENANT_EMAIL},
|
|
||||||
{"customer@thingsboard.org"}};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,8 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.msa.ui.utils;
|
package org.thingsboard.server.msa.ui.utils;
|
||||||
|
|
||||||
|
import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils;
|
||||||
import org.thingsboard.common.util.JacksonUtil;
|
import org.thingsboard.common.util.JacksonUtil;
|
||||||
import org.thingsboard.server.common.data.Customer;
|
import org.thingsboard.server.common.data.Customer;
|
||||||
|
import org.thingsboard.server.common.data.Device;
|
||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
import org.thingsboard.server.common.data.DeviceProfileProvisionType;
|
import org.thingsboard.server.common.data.DeviceProfileProvisionType;
|
||||||
import org.thingsboard.server.common.data.DeviceProfileType;
|
import org.thingsboard.server.common.data.DeviceProfileType;
|
||||||
@ -32,8 +34,11 @@ import org.thingsboard.server.common.data.device.profile.DisabledDeviceProfilePr
|
|||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
import org.thingsboard.server.common.data.id.EntityId;
|
import org.thingsboard.server.common.data.id.EntityId;
|
||||||
import org.thingsboard.server.common.data.id.UserId;
|
import org.thingsboard.server.common.data.id.UserId;
|
||||||
|
import org.thingsboard.server.common.data.notification.targets.platform.CustomerUsersFilter;
|
||||||
import org.thingsboard.server.common.data.rule.RuleChain;
|
import org.thingsboard.server.common.data.rule.RuleChain;
|
||||||
import org.thingsboard.server.common.data.security.Authority;
|
import org.thingsboard.server.common.data.security.Authority;
|
||||||
|
import org.thingsboard.server.common.data.security.UserCredentials;
|
||||||
|
import org.thingsboard.server.common.data.settings.UserSettings;
|
||||||
|
|
||||||
public class EntityPrototypes {
|
public class EntityPrototypes {
|
||||||
|
|
||||||
@ -105,37 +110,71 @@ public class EntityPrototypes {
|
|||||||
return assetProfile;
|
return assetProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Alarm defaultAlarm(EntityId id) {
|
public static Alarm defaultAlarm(EntityId id, String type) {
|
||||||
Alarm alarm = new Alarm();
|
Alarm alarm = new Alarm();
|
||||||
alarm.setType("default");
|
alarm.setType(type);
|
||||||
alarm.setOriginator(id);
|
alarm.setOriginator(id);
|
||||||
alarm.setSeverity(AlarmSeverity.CRITICAL);
|
alarm.setSeverity(AlarmSeverity.CRITICAL);
|
||||||
return alarm;
|
return alarm;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Alarm defaultAlarm(EntityId id, UserId userId) {
|
public static Alarm defaultAlarm(EntityId id, String type, boolean propagate) {
|
||||||
Alarm alarm = new Alarm();
|
Alarm alarm = new Alarm();
|
||||||
alarm.setType("default");
|
alarm.setType(type);
|
||||||
|
alarm.setOriginator(id);
|
||||||
|
alarm.setSeverity(AlarmSeverity.CRITICAL);
|
||||||
|
alarm.setPropagate(propagate);
|
||||||
|
return alarm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Alarm defaultAlarm(EntityId id, String type, UserId userId) {
|
||||||
|
Alarm alarm = new Alarm();
|
||||||
|
alarm.setType(type);
|
||||||
alarm.setOriginator(id);
|
alarm.setOriginator(id);
|
||||||
alarm.setSeverity(AlarmSeverity.CRITICAL);
|
alarm.setSeverity(AlarmSeverity.CRITICAL);
|
||||||
alarm.setAssigneeId(userId);
|
alarm.setAssigneeId(userId);
|
||||||
return alarm;
|
return alarm;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static User defaultUser(CustomerId customerId) {
|
public static Alarm defaultAlarm(EntityId id, String type, UserId userId, boolean propagate) {
|
||||||
|
Alarm alarm = new Alarm();
|
||||||
|
alarm.setType(type);
|
||||||
|
alarm.setOriginator(id);
|
||||||
|
alarm.setSeverity(AlarmSeverity.CRITICAL);
|
||||||
|
alarm.setAssigneeId(userId);
|
||||||
|
alarm.setPropagate(propagate);
|
||||||
|
return alarm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static User defaultUser(String email, CustomerId customerId) {
|
||||||
User user = new User();
|
User user = new User();
|
||||||
user.setEmail("test@thingsboard.org");
|
user.setEmail(email);
|
||||||
user.setCustomerId(customerId);
|
user.setCustomerId(customerId);
|
||||||
user.setAuthority(Authority.CUSTOMER_USER);
|
user.setAuthority(Authority.CUSTOMER_USER);
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static User defaultUser(CustomerId customerId, String name) {
|
public static User defaultUser(String email, CustomerId customerId, String name) {
|
||||||
User user = new User();
|
User user = new User();
|
||||||
user.setEmail("test@thingsboard.org");
|
user.setEmail(email);
|
||||||
user.setFirstName(name);
|
user.setFirstName(name);
|
||||||
user.setCustomerId(customerId);
|
user.setCustomerId(customerId);
|
||||||
user.setAuthority(Authority.CUSTOMER_USER);
|
user.setAuthority(Authority.CUSTOMER_USER);
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Device defaultDevicePrototype(String name){
|
||||||
|
Device device = new Device();
|
||||||
|
device.setName(name + RandomStringUtils.randomAlphanumeric(7));
|
||||||
|
device.setType("DEFAULT");
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Device defaultDevicePrototype(String name, CustomerId id){
|
||||||
|
Device device = new Device();
|
||||||
|
device.setName(name + RandomStringUtils.randomAlphanumeric(7));
|
||||||
|
device.setCustomerId(id);
|
||||||
|
device.setType("DEFAULT");
|
||||||
|
return device;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user