/******************************************************************************* * Copyright (c) 2013 Red Hat Inc. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Neil Guzman - initial API and implementation *******************************************************************************/ package org.eclipse.linuxtools.internal.rpm.createrepo.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.linuxtools.internal.rpm.createrepo.CreaterepoProjectCreator; import org.eclipse.linuxtools.internal.rpm.createrepo.CreaterepoProjectNature; import org.eclipse.linuxtools.internal.rpm.createrepo.form.tests.ICreaterepoTestConstants; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; /** * Test case for project creation with CreaterepoProjectCreatorTest class. * This checks if the project creator is working, but does not check for * initializing of .repo file contents and the content folder. These are done * via the wizard (SWTBot test should handle this). */ public class CreaterepoProjectCreatorTest { private static IWorkspaceRoot root; private static NullProgressMonitor monitor; private IProject project; /** * Initialize workspace root and progress monitor. */ @BeforeClass public static void setUpBeforeClass() { root = ResourcesPlugin.getWorkspace().getRoot(); monitor = new NullProgressMonitor(); } /** * Create the project using CreaterepoProjectCreator. * * @throws CoreException */ @Before public void setUp() throws CoreException{ if (project == null || !project.exists()) { project = CreaterepoProjectCreator.create(ICreaterepoTestConstants.PROJECT_NAME, root.getLocation(), ICreaterepoTestConstants.REPO_NAME, monitor); } assertNotNull(project); assertTrue(project.exists()); } /** * Forcefully delete the project if it exists. * * @throws CoreException */ @After public void tearDown() throws CoreException { if (project != null && project.exists()) { project.delete(true, true, monitor); } assertFalse(project.exists()); } /** * Test to see if the project has been properly created. Content folder * should not appear due to CreaterepoWizard handling its creation. Repo * file should be empty for the same reason. * * @throws CoreException * @throws IOException */ @Test public void testProjectContents() throws CoreException, IOException { // 2 = .project + .repo file assertEquals(2, project.members().length); // contains the repo file assertTrue(project.findMember(ICreaterepoTestConstants.REPO_NAME).exists()); IFile repoFile = (IFile) project.findMember(ICreaterepoTestConstants.REPO_NAME); // repo file should be empty because test did not go through project creation // to initialize .repo contents assertEquals(repoFile.getContents().available(), 0); } /** * Test to see if the project has the proper nature. * * @throws CoreException */ @Test public void testProjectNature() throws CoreException { assertTrue(project.hasNature(CreaterepoProjectNature.CREATEREPO_NATURE_ID)); } }