/* * Title: CloudSim Toolkit Description: CloudSim (Cloud Simulation) Toolkit for Modeling and * Simulation of Clouds Licence: GPL - http://www.gnu.org/copyleft/gpl.html * * Copyright (c) 2009-2012, The University of Melbourne, Australia */ package org.cloudbus.cloudsim; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; /** * @author Anton Beloglazov * @since CloudSim Toolkit 2.0 */ public class VmTest { private static final int ID = 1; private static final int USER_ID = 1; private static final double MIPS = 1000; private static final int PES_NUMBER = 2; private static final int RAM = 1024; private static final int BW = 10000; private static final long SIZE = 1000; private static final String VMM = "Xen"; private CloudletSchedulerDynamicWorkload vmScheduler; private Vm vm; @Before public void setUp() throws Exception { vmScheduler = new CloudletSchedulerDynamicWorkload(MIPS, PES_NUMBER); vm = new Vm(ID, USER_ID, MIPS, PES_NUMBER, RAM, BW, SIZE, VMM, vmScheduler); } @Test public void testGetMips() { assertEquals(MIPS, vm.getMips(), 0); } @Test public void testSetMips() { vm.setMips(MIPS / 2); assertEquals(MIPS / 2, vm.getMips(), 0); } @Test public void testGetNumberOfPes() { assertEquals(PES_NUMBER, vm.getNumberOfPes()); } @Test public void testGetRam() { assertEquals(RAM, vm.getRam()); } @Test public void testGetBw() { assertEquals(BW, vm.getBw()); } @Test public void testGetSize() { assertEquals(SIZE, vm.getSize()); } @Test public void testGetVmm() { assertEquals(VMM, vm.getVmm()); } @Test public void testGetHost() { assertEquals(null, vm.getHost()); Host host = new Host(0, null, null, 0, new ArrayList<Pe>(), null); vm.setHost(host); assertEquals(host, vm.getHost()); } @Test public void testIsInMigration() { assertFalse(vm.isInMigration()); vm.setInMigration(true); assertTrue(vm.isInMigration()); } @Test public void testGetTotalUtilization() { assertEquals(0, vm.getTotalUtilizationOfCpu(0), 0); } @Test public void testGetTotalUtilizationMips() { assertEquals(0, vm.getTotalUtilizationOfCpuMips(0), 0); } @Test public void testGetUid() { assertEquals(USER_ID + "-" + ID, vm.getUid()); } @Test public void testUpdateVmProcessing() { assertEquals(0, vm.updateVmProcessing(0, null), 0); ArrayList<Double> mipsShare1 = new ArrayList<Double>(); mipsShare1.add(1.0); ArrayList<Double> mipsShare2 = new ArrayList<Double>(); mipsShare2.add(1.0); assertEquals(vmScheduler.updateVmProcessing(0, mipsShare1), vm.updateVmProcessing(0, mipsShare2), 0); } @Test public void testGetCurrentAllocatedSize() { assertEquals(0, vm.getCurrentAllocatedSize()); vm.setCurrentAllocatedSize(SIZE); assertEquals(SIZE, vm.getCurrentAllocatedSize()); } @Test public void testGetCurrentAllocatedRam() { assertEquals(0, vm.getCurrentAllocatedRam()); vm.setCurrentAllocatedRam(RAM); assertEquals(RAM, vm.getCurrentAllocatedRam()); } @Test public void testGetCurrentAllocatedBw() { assertEquals(0, vm.getCurrentAllocatedBw()); vm.setCurrentAllocatedBw(BW); assertEquals(BW, vm.getCurrentAllocatedBw()); } @Test public void testGetCurrentAllocatedMips() { // ArrayList<Integer> currentAllocatedMips = new ArrayList<Integer>(); // assertEquals(currentAllocatedMips, vm.getCurrentAllocatedMips()); assertNull(vm.getCurrentAllocatedMips()); } @Test public void testIsBeingInstantiated() { assertTrue(vm.isBeingInstantiated()); vm.setBeingInstantiated(false); assertFalse(vm.isBeingInstantiated()); } @Test public void testGetCurrentRequestedMips() { CloudletScheduler cloudletScheduler = createMock(CloudletScheduler.class); Vm vm = new Vm(ID, USER_ID, MIPS, PES_NUMBER, RAM, BW, SIZE, VMM, cloudletScheduler); vm.setBeingInstantiated(false); List<Double> expectedCurrentMips = new ArrayList<Double>(); expectedCurrentMips.add(MIPS / 2); expectedCurrentMips.add(MIPS / 2); expect(cloudletScheduler.getCurrentRequestedMips()).andReturn(expectedCurrentMips); replay(cloudletScheduler); assertEquals(expectedCurrentMips, vm.getCurrentRequestedMips()); verify(cloudletScheduler); } @Test public void testGetCurrentRequestedTotalMips() { CloudletScheduler cloudletScheduler = createMock(CloudletScheduler.class); Vm vm = new Vm(ID, USER_ID, MIPS, PES_NUMBER, RAM, BW, SIZE, VMM, cloudletScheduler); ArrayList<Double> currentMips = new ArrayList<Double>(); currentMips.add(MIPS); currentMips.add(MIPS); expect(cloudletScheduler.getCurrentRequestedMips()).andReturn(currentMips); replay(cloudletScheduler); assertEquals(MIPS * 2, vm.getCurrentRequestedTotalMips(), 0); verify(cloudletScheduler); } }