blob: 882b7a1343fb1916c9446b42589de6f61a350405 [file] [log] [blame]
package com.android.tradefed.targetprep;
import com.android.tradefed.build.IDeviceBuildInfo;
import com.android.tradefed.device.ITestDevice;
import com.android.tradefed.util.FileUtil;
import com.android.tradefed.util.ZipUtil;
import junit.framework.TestCase;
import org.easymock.EasyMock;
import java.io.File;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class OtaFaultInjectionPreparerTest extends TestCase {
private IDeviceBuildInfo mMockDeviceBuildInfo;
private ITestDevice mMockDevice;
private OtaFaultInjectionPreparer mFaultInjectionPreparer;
private File mOtaPackage = null;
private File mStubZipBaseDir = null;
private ZipFile mZipFile = null;
/**
* {@inheritDoc}
*/
@Override
public void setUp() throws Exception {
super.setUp();
mStubZipBaseDir = FileUtil.createTempDir("libotafault");
File stubChildDir = new File(mStubZipBaseDir, "somedir");
assertTrue(stubChildDir.mkdir());
File subFile = new File(stubChildDir, "foo.txt");
FileUtil.writeToFile("contents", subFile);
mOtaPackage = ZipUtil.createZip(mStubZipBaseDir);
mMockDevice = EasyMock.createMock(ITestDevice.class);
mMockDeviceBuildInfo = EasyMock.createMock(IDeviceBuildInfo.class);
EasyMock.expect(mMockDeviceBuildInfo.getOtaPackageFile()).andReturn(mOtaPackage);
mFaultInjectionPreparer = new OtaFaultInjectionPreparer();
}
/**
* {@inheritDoc}
*/
@Override
public void tearDown() throws Exception {
super.tearDown();
mZipFile.close();
mOtaPackage.delete();
FileUtil.recursiveDelete(mStubZipBaseDir);
}
public void testAddSingleFault_read() throws Exception {
mFaultInjectionPreparer.mReadFaultFile = "/foo/bar";
EasyMock.replay(mMockDevice, mMockDeviceBuildInfo);
mFaultInjectionPreparer.setUp(mMockDevice, mMockDeviceBuildInfo);
EasyMock.verify(mMockDevice, mMockDeviceBuildInfo);
mZipFile = new ZipFile(mOtaPackage);
ZipEntry ze = mZipFile.getEntry(OtaFaultInjectionPreparer.CFG_BASE + "/READ");
assertTrue(ZipUtil.isZipFileValid(mOtaPackage, true));
assertNotNull(ze);
InputStream entryReader = mZipFile.getInputStream(ze);
byte buf[] = new byte[8];
int numBytesRead = entryReader.read(buf);
assertEquals(numBytesRead, 8);
assertEquals(new String(buf), "/foo/bar");
}
}