Skip to content

Commit

Permalink
update the verify rule of delete relation (#177)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhou9584 authored Dec 13, 2022
1 parent aa540c5 commit 1ec8b63
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ private Element buildTestSuite(Document document, TestTask testTask, DeviceTestT
testSuite.setAttribute(ATTR_TIME, Double.toString((double) (deviceTestTask.getTestEndTimeMillis() - deviceTestTask.getTestStartTimeMillis()) / 1000.f));
testSuite.setAttribute(TIMESTAMP, DateUtil.appCenterFormat2.format(DateUtil.localToUTC(new Date(deviceTestTask.getTestStartTimeMillis()))));
testSuite.setAttribute(HOSTNAME, InetAddress.getLocalHost().getHostName());
if (deviceTestTask.getTestUnitList() != null) {
if (deviceTestTask.getTestUnitList() != null && deviceTestTask.getTotalCount() != deviceTestTask.getFailCount()) {
testSuite.setAttribute(ATTR_SKIPPED, String.valueOf(deviceTestTask.getTotalCount() - deviceTestTask.getTestUnitList().size()));
for (AndroidTestUnit unitTest : deviceTestTask.getTestUnitList()) {
Element testCase = buildTestCase(document, unitTest);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@

import com.azure.core.annotation.QueryParam;
import com.microsoft.hydralab.center.service.*;
import com.microsoft.hydralab.common.util.Const;
import com.microsoft.hydralab.common.entity.agent.Result;
import com.microsoft.hydralab.common.entity.center.*;
import com.microsoft.hydralab.common.entity.center.DeviceGroup;
import com.microsoft.hydralab.common.entity.center.DeviceGroupRelation;
import com.microsoft.hydralab.common.entity.center.SysTeam;
import com.microsoft.hydralab.common.entity.center.SysUser;
import com.microsoft.hydralab.common.entity.common.AccessInfo;
import com.microsoft.hydralab.common.entity.common.CriteriaType;
import com.microsoft.hydralab.common.entity.common.DeviceInfo;
import com.microsoft.hydralab.common.util.Const;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.security.core.annotation.CurrentSecurityContext;
Expand Down Expand Up @@ -209,8 +212,8 @@ public Result deleteRelation(@CurrentSecurityContext SysUser requestor,
if (!deviceGroupService.checkGroupAuthorization(requestor, groupName, true)) {
return Result.error(HttpStatus.UNAUTHORIZED.value(), "Authentication failed");
}
if (!deviceAgentManagementService.checkDeviceInfo(deviceSerial)) {
return Result.error(HttpStatus.BAD_REQUEST.value(), "DeviceSerial is incorrect");
if (deviceGroupService.getRelation(groupName, deviceSerial) == null) {
return Result.error(HttpStatus.BAD_REQUEST.value(), "DeviceSerial or groupName is incorrect");
}

deviceGroupService.deleteRelation(groupName, deviceSerial);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
package com.microsoft.hydralab.center.service;


import com.microsoft.hydralab.common.entity.center.DeviceGroupRelationId;
import com.microsoft.hydralab.common.util.Const;
import com.microsoft.hydralab.common.entity.center.DeviceGroup;
import com.microsoft.hydralab.common.entity.center.DeviceGroupRelation;
Expand Down Expand Up @@ -86,6 +87,13 @@ public void deleteRelation(String groupName, String deviceSerial) {
deviceGroupRelationRepository.delete(deviceGroupRelation);
}

public DeviceGroupRelation getRelation(String groupName, String deviceSerial) {
DeviceGroupRelationId id = new DeviceGroupRelationId();
id.setDeviceSerial(deviceSerial);
id.setGroupName(groupName);
return deviceGroupRelationRepository.findById(id).orElse(null);
}

public List<DeviceGroupRelation> getDeviceByGroup(String groupName) {
return deviceGroupRelationRepository.findAllByGroupName(groupName);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.microsoft.hydralab.center.service;

import com.microsoft.hydralab.center.test.BaseTest;
import com.microsoft.hydralab.common.entity.center.DeviceGroup;
import com.microsoft.hydralab.common.entity.center.DeviceGroupRelation;
import com.microsoft.hydralab.common.entity.center.SysTeam;
import com.microsoft.hydralab.common.util.Const;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import javax.annotation.Resource;
import java.util.List;

class DeviceGroupServiceTest extends BaseTest {

@Resource
DeviceGroupService deviceGroupService;
@Resource
SysTeamService sysTeamService;

String groupName = "GROUP";
String deviceSerial = "DEVICE";


@Test
void testDeviceGroupManagement() {
SysTeam defaultTeam = sysTeamService.getOrCreateDefaultTeam(Const.DefaultTeam.DEFAULT_TEAM_NAME);

deviceGroupService.createGroup(defaultTeam.getTeamId(), defaultTeam.getTeamName(), groupName, null);
DeviceGroup group = deviceGroupService.getGroupByName(Const.DeviceGroup.groupPre + groupName);
Assertions.assertNotNull(group, "Insert group failed!");

deviceGroupService.saveRelation(groupName, deviceSerial);
DeviceGroupRelation relation = deviceGroupService.getRelation(groupName, deviceSerial);
Assertions.assertNotNull(relation, "Insert relation failed!");

List<DeviceGroupRelation> relationD = deviceGroupService.getGroupByDevice(deviceSerial);
Assertions.assertNotNull(relationD, "Query relation by device failed!");
Assertions.assertEquals(relationD.size(), 1, "Query relation by device failed!");

List<DeviceGroupRelation> relationG = deviceGroupService.getDeviceByGroup(groupName);
Assertions.assertNotNull(relationG, "Query relation by group failed!");
Assertions.assertEquals(relationG.size(), 1, "Query relation by group failed!");

deviceGroupService.deleteRelation(groupName, deviceSerial);
relation = deviceGroupService.getRelation(groupName, deviceSerial);
Assertions.assertNull(relation, "Delete relation failed!");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
import io.appium.java_client.windows.WindowsDriver;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.openqa.selenium.NoSuchSessionException;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.net.UrlChecker;
import org.openqa.selenium.remote.DesiredCapabilities;
Expand Down Expand Up @@ -278,7 +278,7 @@ public Boolean isDriverAlive(AppiumDriver driver) {
try {
driver.getScreenshotAs(OutputType.FILE);
return true;
} catch (NoSuchSessionException e) {
} catch (WebDriverException e) {
return false;
}
}
Expand Down

0 comments on commit 1ec8b63

Please sign in to comment.