/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.computecontroller.impl.ucs; import java.net.URI; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.URIUtil; import com.emc.storageos.db.client.model.ComputeElement; import com.emc.storageos.db.client.model.ComputeSystem; /* * Test class to test RefreshRequiredUpdateFunction.call() with simulated objects * It uses configuration files from dbclient, dbutils and coordinatorsvc */ public class ComputeElementsCreateTest { private DbClient _dbClient = null; private static final int computeElementCount = 5; // Storage System URI used to create RefreshRequiredUpdateFunction instance private URI computeSystemURI = null; private List<ComputeElement> computeElementsObjects = new ArrayList<ComputeElement>(); @Before public void setup() { // get DB client ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("dbclient-conf.xml"); _dbClient = (DbClient) ctx.getBean("dbclient"); _dbClient.start(); } @After public void cleanup() { if (_dbClient != null) { _dbClient.stop(); } } /* * Create Volume/BlockSnapshot for all Storage Systems */ @Test public void createComputeElements() { List<URI> computeSystems = _dbClient.queryByType(ComputeSystem.class, true); while (computeSystems.iterator().hasNext()) { computeSystemURI = computeSystems.iterator().next(); } for (int i = 0; i < computeElementCount; i++) { URI computeElementURI = URIUtil.createId(ComputeElement.class); ComputeElement computeElement = new ComputeElement(); computeElement.setComputeSystem(computeSystemURI); computeElement.setId(computeElementURI); computeElement.setCreationTime(Calendar.getInstance()); computeElement.setInactive(false); computeElement.setRam(67108864L); computeElement.setNativeGuid(computeSystemURI.toASCIIString()); computeElementsObjects.add(computeElement); } _dbClient.createObject(computeElementsObjects); } /* * Verify a list of block objects of given type */ @Test public void deleteComputeElementObjects() { // delete all objects in the list _dbClient.removeObject(computeElementsObjects.toArray(new ComputeElement[computeElementsObjects.size()])); } }