Adding some testcases for different set of operations.

revert-70aa11f8
sinthuja 7 years ago
parent c5cfa23caa
commit a4c7ade205

@ -118,6 +118,8 @@ public class ConfigOperationDAOImpl extends GenericOperationDAOImpl {
bais = new ByteArrayInputStream(operationDetails);
ois = new ObjectInputStream(bais);
configOperation = (ConfigOperation) ois.readObject();
configOperation.setId(rs.getInt("OPERATION_ID"));
configOperation.setEnabled(rs.getBoolean("ENABLED"));
}
} catch (IOException e) {
throw new OperationManagementDAOException("IO Error occurred while de serialize the policy operation " +

@ -481,8 +481,6 @@ public interface DeviceManagementProviderService {
*/
PlatformConfiguration getConfiguration(String deviceType) throws DeviceManagementException;
void updateDeviceEnrolmentInfo(Device device, EnrolmentInfo.Status active) throws DeviceManagementException;
/**
* This method is used to check whether the device is enrolled with the give user.
*

@ -1890,41 +1890,6 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
return result;
}
@Override
public void updateDeviceEnrolmentInfo(Device device, EnrolmentInfo.Status status) throws DeviceManagementException {
try {
if (device == null || status == null) {
String msg = "Received incomplete data for updateDeviceEnrolmentInfo";
log.error(msg);
throw new DeviceManagementException(msg);
}
if (log.isDebugEnabled()) {
log.debug("Updating enrolment for device: " + device.getId() + " of type '" + device.getType() + "'");
}
DeviceManagementDAOFactory.beginTransaction();
device.getEnrolmentInfo().setDateOfLastUpdate(new Date().getTime());
device.getEnrolmentInfo().setStatus(status);
deviceDAO.updateDevice(device, this.getTenantId());
DeviceManagementDAOFactory.commitTransaction();
} catch (DeviceManagementDAOException e) {
DeviceManagementDAOFactory.rollbackTransaction();
String msg = "Error occurred while updating device enrolment status for " + device.getDeviceIdentifier() +
" of type " + device.getType();
log.error(msg, e);
throw new DeviceManagementException(msg, e);
} catch (TransactionManagementException e) {
String msg = "Error occurred while initiating transaction";
log.error(msg, e);
throw new DeviceManagementException(msg, e);
} catch (Exception e) {
String msg = "Error occurred in updateDeviceEnrolmentInfo";
log.error(msg, e);
throw new DeviceManagementException(msg, e);
} finally {
DeviceManagementDAOFactory.closeConnection();
}
}
@Override
public void registerDeviceManagementService(DeviceManagementService deviceManagementService) {
if (log.isDebugEnabled()) {

@ -25,6 +25,7 @@ import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
import org.wso2.carbon.device.mgt.common.PaginationRequest;
import org.wso2.carbon.device.mgt.common.PaginationResult;
@ -50,6 +51,7 @@ import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -72,6 +74,7 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
private List<DeviceIdentifier> deviceIds = new ArrayList<>();
private OperationManager operationMgtService;
private DeviceManagementProviderService deviceMgmtProvider;
private Activity commandActivity;
private long commandActivityBeforeUpdatedTimestamp;
@ -94,6 +97,7 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
throw new Exception("Incorrect device with ID - " + device.getDeviceIdentifier() + " returned!");
}
}
this.deviceMgmtProvider = DeviceManagementDataHolder.getInstance().getDeviceManagementProvider();
NotificationStrategy notificationStrategy = new TestNotificationStrategy();
this.operationMgtService = new OperationManagerImpl(DEVICE_TYPE, notificationStrategy);
}
@ -555,8 +559,98 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
expectedExceptions = IllegalArgumentException.class)
public void getOperationByActivityIdAndDeviceInvalidActivityId() throws DeviceManagementException,
OperationManagementException {
this.operationMgtService.getOperationByActivityIdAndDevice(DeviceManagementConstants.OperationAttributes.ACTIVITY + 0,
this.operationMgtService.getOperationByActivityIdAndDevice(
DeviceManagementConstants.OperationAttributes.ACTIVITY + 0,
new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE));
}
@Test(dependsOnMethods = "getOperationByActivityIdAndDeviceInvalidActivityId")
public void getPendingOperationsInactiveEnrollment() throws DeviceManagementException,
OperationManagementException {
changeStatus(EnrolmentInfo.Status.INACTIVE);
List operations = this.operationMgtService.getPendingOperations(this.deviceIds.get(1));
Assert.assertTrue(operations != null);
Assert.assertEquals(operations.size(), 4);
changeStatus(EnrolmentInfo.Status.ACTIVE);
}
private void changeStatus(EnrolmentInfo.Status status) throws DeviceManagementException,
OperationManagementException {
Device device = this.deviceMgmtProvider.getDevice(this.deviceIds.get(1));
Assert.assertTrue(device != null);
Assert.assertEquals(device.getType(), DEVICE_TYPE);
Assert.assertTrue(device.getEnrolmentInfo() != null);
device.getEnrolmentInfo().setStatus(status);
boolean modified = this.deviceMgmtProvider.changeDeviceStatus(this.deviceIds.get(1), status);
Assert.assertTrue(modified);
device = this.deviceMgmtProvider.getDevice(this.deviceIds.get(1));
Assert.assertEquals(device.getEnrolmentInfo().getStatus(), status);
}
@Test(dependsOnMethods = "getPendingOperationsInactiveEnrollment")
public void getNextPendingOperationInactiveEnrollment() throws DeviceManagementException,
OperationManagementException {
changeStatus(EnrolmentInfo.Status.INACTIVE);
Operation operation = this.operationMgtService.getNextPendingOperation(this.deviceIds.get(1));
Assert.assertTrue(operation != null);
changeStatus(EnrolmentInfo.Status.ACTIVE);
}
@Test(dependsOnMethods = "getNextPendingOperationInactiveEnrollment")
public void getNextPendingOperationForAllOperations() throws DeviceManagementException,
OperationManagementException {
for (int i = 0; i < 4; i++) {
Operation operation = this.operationMgtService.getNextPendingOperation(this.deviceIds.get(1));
operation.setStatus(Operation.Status.COMPLETED);
this.operationMgtService.updateOperation(deviceIds.get(1), operation);
}
Assert.assertTrue(this.operationMgtService.getNextPendingOperation(this.deviceIds.get(1)) == null);
}
@Test(dependsOnMethods = "getNextPendingOperationForAllOperations")
public void getOperationByDeviceAndOperationIdForAllOperations() throws DeviceManagementException,
OperationManagementException {
for (int i = 1; i <= 4; i++) {
Operation operation = this.operationMgtService.getOperationByDeviceAndOperationId(this.deviceIds.get(1), i);
Assert.assertEquals(operation.getStatus(), Operation.Status.COMPLETED);
}
}
@Test(dependsOnMethods = "getOperationByDeviceAndOperationIdForAllOperations")
public void getOperationForAllOperations() throws DeviceManagementException,
OperationManagementException {
for (int i = 1; i <= 4; i++) {
Operation operation = this.operationMgtService.getOperation(i);
Assert.assertTrue(operation != null);
}
}
@Test(dependsOnMethods = "getOperationForAllOperations")
public void addCustomPolicyOperation() throws OperationManagementException, InvalidDeviceException {
this.addCustomOperation(Operation.Type.POLICY, DeviceManagementConstants.AuthorizationSkippedOperationCodes.
POLICY_OPERATION_CODE);
}
@Test(dependsOnMethods = "getOperationForAllOperations")
public void addCustomMonitorOperation() throws OperationManagementException, InvalidDeviceException {
this.addCustomOperation(Operation.Type.COMMAND, DeviceManagementConstants.AuthorizationSkippedOperationCodes.
MONITOR_OPERATION_CODE);
}
@Test(dependsOnMethods = "getOperationForAllOperations")
public void addCustomPolicyRevokeOperation() throws OperationManagementException, InvalidDeviceException {
this.addCustomOperation(Operation.Type.POLICY, DeviceManagementConstants.AuthorizationSkippedOperationCodes.
POLICY_REVOKE_OPERATION_CODE);
}
private void addCustomOperation(Operation.Type type, String operationCode) throws OperationManagementException, InvalidDeviceException {
Operation operation = new Operation();
operation.setCode(operationCode);
operation.setType(type);
Activity activity = this.operationMgtService.addOperation(operation, Collections.singletonList(this.deviceIds.get(2)));
Assert.assertEquals(activity.getActivityStatus().size(), 1);
for (ActivityStatus status : activity.getActivityStatus()) {
Assert.assertEquals(status.getStatus(), ActivityStatus.Status.PENDING);
}
}
}

Loading…
Cancel
Save