/* * RHQ Management Platform * Copyright (C) 2005-2010 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as * published by the Free Software Foundation, and/or the GNU Lesser * General Public License, version 2.1, also as published by the Free * Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License and the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU General Public License * and the GNU Lesser General Public License along with this program; * if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package org.rhq.core.util.updater; import java.io.File; import org.testng.annotations.Test; import org.rhq.core.util.ZipUtil; import org.rhq.core.util.file.FileUtil; @Test public class DeploymentsMetadataTest { public void testBasic() throws Exception { File tmpDir = FileUtil.createTempDirectory("deploymentsMetadataTest", ".dir", null); try { ZipUtil.unzipFile(new File("target/test-classes/updater-test1.zip"), tmpDir); DeploymentsMetadata metadata = new DeploymentsMetadata(tmpDir); assert !metadata.isManaged() : "this should not be managed yet : " + metadata; DeploymentProperties deploymentProps = new DeploymentProperties(); int deploymentId = 1; deploymentProps.setDeploymentId(deploymentId); deploymentProps.setBundleName("test-bundle-name"); deploymentProps.setBundleVersion("1.0"); deploymentProps.setDescription("test bundle description"); deploymentProps.setDestinationCompliance(DestinationComplianceMode.full); FileHashcodeMap map = metadata.snapshotLiveDeployment(deploymentProps, null, null); assert metadata.isManaged() : "this should be managed now : " + metadata; assert map.size() == 5 : map; // there are 5 files in our test bundle zip assert map.containsKey("file0") : map; assert map.containsKey("dir1" + File.separator + "file1") : map; assert map.containsKey("dir1" + File.separator + "file2") : map; assert map.containsKey("dir2" + File.separator + "file3") : map; assert map.containsKey("dir3" + File.separator + "dir4" + File.separator + "file4") : map; // make sure we created our metadata File metadataDir = new File(tmpDir, DeploymentsMetadata.METADATA_DIR); assert metadataDir.exists(); assert new File(metadataDir, DeploymentsMetadata.CURRENT_DEPLOYMENT_FILE).exists(); File deploymentDir = new File(metadataDir, Integer.toString(deploymentId)); assert deploymentDir.isDirectory(); assert new File(deploymentDir, DeploymentsMetadata.DEPLOYMENT_FILE).exists(); assert new File(deploymentDir, DeploymentsMetadata.HASHCODES_FILE).exists(); FileHashcodeMap mapDup = FileHashcodeMap.loadFromFile(new File(deploymentDir, DeploymentsMetadata.HASHCODES_FILE)); assert map.equals(mapDup) : mapDup + " is not same as " + map; } finally { FileUtil.purge(tmpDir, true); } } }