/* * Copyright (c) 2013 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.isilon; import java.net.URI; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import com.emc.storageos.db.client.URIUtil; import com.emc.storageos.db.client.constraint.Constraint; import com.emc.storageos.db.client.model.FileShare; import com.emc.storageos.db.client.model.Operation.Status; import com.emc.storageos.db.client.model.StoragePool; import com.emc.storageos.db.client.model.StorageSystem; import com.emc.storageos.db.client.model.VirtualPool; import com.emc.storageos.db.exceptions.DatabaseException; import com.emc.storageos.isilon.restapi.IsilonApiFactory; import com.emc.storageos.services.util.EnvConfig; import com.emc.storageos.svcs.errorhandling.resources.ServiceCode; import com.emc.storageos.util.DummyDbClient; import com.emc.storageos.volumecontroller.FileDeviceInputOutput; import com.emc.storageos.volumecontroller.impl.BiosCommandResult; /** * Test class for IsilonFileStorageDevice */ public class BiosCommandResultTest { private IsilonFileStorageDevice _isi; private StorageSystem _device; private StoragePool _pool; private String ip = EnvConfig.get("sanity", "isilon.ip"); private String userName = EnvConfig.get("sanity", "isilon.username"); private String password = EnvConfig.get("sanity", "isilon.password"); private String portNumber = EnvConfig.get("sanity", "isilon.port"); @Before public void setUp() throws Exception { _isi = new IsilonFileStorageDevice(); IsilonApiFactory factory = new IsilonApiFactory(); factory.init(); _isi.setIsilonApiFactory(factory); _isi.setDbClient(new DummyDbClient() { @Override public List<URI> queryByConstraint(Constraint constraint) throws DatabaseException { return new ArrayList<>(); } }); // storage device object for tests to use _device = new StorageSystem(); _device.setIpAddress(ip); _device.setPortNumber(Integer.parseInt(portNumber)); _device.setUsername(userName); _device.setPassword(password); _pool = new StoragePool(); } // In the default/public build, we do not have access to an isilon, so this test is off by default. @Ignore @Test public void doCreateFS() throws Exception { FileShare fs = new FileShare(); fs.setId(URIUtil.createId(FileShare.class)); fs.setLabel("test"); fs.setCapacity(102400L); FileDeviceInputOutput args = new FileDeviceInputOutput(); args.addStoragePool(_pool); args.setVPool(createVPool()); args.addFSFileObject(fs); final BiosCommandResult result = _isi.doCreateFS(_device, args); Assert.assertEquals(Status.error.name(), result.getCommandStatus()); Assert.assertEquals(false, result.getCommandSuccess()); Assert.assertEquals(ServiceCode.ISILON_CONNECTION_ERROR, result.getServiceCoded().getServiceCode()); Assert.assertEquals("Unable to connect to isilon using url https://127.0.0.1:8080/", result.getMessage()); Assert.assertNotNull(result.getServiceCoded()); } private VirtualPool createVPool() { VirtualPool vpool = new VirtualPool(); vpool.setId(URIUtil.createId(VirtualPool.class)); vpool.setLabel("test-vpool"); return vpool; } }