protected Response doAdd(Snapshot snapshot, boolean block) { validateParameters(snapshot, "description"); CreateSnapshotForVmParameters snapshotParams = new CreateSnapshotForVmParameters(parentId, snapshot.getDescription()); if (snapshot.isSetPersistMemorystate()) { snapshotParams.setSaveMemory(snapshot.isPersistMemorystate()); } if (snapshot.isSetDiskAttachments()) { Map<Guid, Guid> diskToImageIds = mapDisks(snapshot.getDiskAttachments()); snapshotParams.setDiskIds(new TreeSet<>(diskToImageIds.keySet())); snapshotParams.setDiskToImageIds(diskToImageIds); } return performCreate(ActionType.CreateSnapshotForVm, snapshotParams, new SnapshotIdResolver(), block); }
@Test public void objectMapperSerializeCreateSnapshotForVmParametersMapFailure() { Map<Guid, Guid> diskToImageIds = new HashMap<>(); diskToImageIds.put(Guid.newGuid(), Guid.newGuid()); CreateSnapshotForVmParameters params = new CreateSnapshotForVmParameters( Guid.newGuid(), "Test", false, diskToImageIds.keySet()); params.setDiskToImageIds(diskToImageIds); try { String json = serialize(params); assertTrue(json.length() > 0); assertThrows(JsonMappingException.class, () -> deserialize(json, CreateSnapshotForVmParameters.class)); } catch (Exception ex) { // ignore } }
@Test public void serializeCreateSnapshotForVmParametersMap() { Map<Guid, Guid> diskToImageIds = new HashMap<>(); diskToImageIds.put(Guid.newGuid(), Guid.newGuid()); CreateSnapshotForVmParameters params = new CreateSnapshotForVmParameters( Guid.newGuid(), "Test", false, new TreeSet<>(diskToImageIds.keySet())); params.setDiskToImageIds(diskToImageIds); JsonObjectSerializer serializer = new JsonObjectSerializer(); String json = serializer.serialize(params); assertTrue(json.length() > 0); JsonObjectDeserializer deserializer = new JsonObjectDeserializer(); CreateSnapshotForVmParameters deserializedParams = deserializer.deserialize(json, CreateSnapshotForVmParameters.class); assertEquals(params.getDiskIds(), deserializedParams.getDiskIds()); }
@Test public void serializeCreateSnapshotForVmParametersMapFailure() { Map<Guid, Guid> diskToImageIds = new HashMap<>(); diskToImageIds.put(Guid.newGuid(), Guid.newGuid()); CreateSnapshotForVmParameters params = new CreateSnapshotForVmParameters( Guid.newGuid(), "Test", false, diskToImageIds.keySet()); params.setDiskToImageIds(diskToImageIds); JsonObjectSerializer serializer = new JsonObjectSerializer(); String json = serializer.serialize(params); assertTrue(json.length() > 0); JsonObjectDeserializer deserializer = new JsonObjectDeserializer(); assertThrows(SerializationException.class, () -> deserializer.deserialize(json, CreateSnapshotForVmParameters.class)); }