Package org.jboss.forge.furnace

Source Code of org.jboss.forge.furnace.FurnaceImplTest$TestAddonRepository

/*
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.furnace;

import java.io.File;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Set;

import org.jboss.forge.furnace.addons.AddonId;
import org.jboss.forge.furnace.impl.FurnaceImpl;
import org.jboss.forge.furnace.repositories.AddonDependencyEntry;
import org.jboss.forge.furnace.repositories.AddonRepository;
import org.jboss.forge.furnace.repositories.AddonRepositoryMode;
import org.jboss.forge.furnace.versions.Version;
import org.junit.Assert;
import org.junit.Test;

public class FurnaceImplTest
{
   @Test(expected = IllegalArgumentException.class)
   public void shouldValidateAddRepositoryArgumentMode() throws Exception
   {
      Furnace f = new FurnaceImpl();
      f.addRepository(null, new File("."));
   }

   @Test(expected = IllegalArgumentException.class)
   public void shouldValidateAddRepositoryArgumentDirectory() throws Exception
   {
      Furnace f = new FurnaceImpl();
      f.addRepository(AddonRepositoryMode.IMMUTABLE, null);
   }

   @Test(expected = IllegalArgumentException.class)
   public void shouldValidateAddRepositoryArgumentRepository() throws Exception
   {
      Furnace f = new FurnaceImpl();
      f.addRepository((AddonRepository) null);
   }

   @Test
   public void testAddMultipleDiskRepositoriesWithSameRootDirectoryIsIdempotent() throws Exception
   {
      Furnace f = new FurnaceImpl();
      AddonRepository repo1 = f.addRepository(AddonRepositoryMode.IMMUTABLE, new File("target"));
      AddonRepository repo2 = f.addRepository(AddonRepositoryMode.IMMUTABLE, new File("target"));
      Assert.assertEquals(repo1, repo2);
   }

   @Test
   public void shouldNotAllowMultipleRepositoriesWithSameRootDirectory() throws Exception
   {
      Furnace f = new FurnaceImpl();
      AddonRepository repo1 = f.addRepository(AddonRepositoryMode.IMMUTABLE, new File("target"));
      AddonRepository repo2 = f.addRepository(new TestAddonRepository(new File("target")));
      Assert.assertEquals(repo1, repo2);
   }

   @Test
   public void shouldAllowToAddDiskRepository() throws Exception
   {
      Furnace f = new FurnaceImpl();
      f.addRepository(AddonRepositoryMode.IMMUTABLE, new File("target"));
      Assert.assertEquals(1, f.getRepositories().size());
   }

   @Test
   public void shouldAllowToAddCustomRepository() throws Exception
   {
      Furnace f = new FurnaceImpl();

      AddonRepository repository = new TestAddonRepository(new File("target"));
      f.addRepository(repository);

      Assert.assertEquals(1, f.getRepositories().size());
      Assert.assertEquals(repository, f.getRepositories().get(0));
   }

   private static class TestAddonRepository implements AddonRepository
   {
      private final Date modified;
      private final File rootDir;

      public TestAddonRepository(File rootDir)
      {
         this.modified = new Date();
         this.rootDir = rootDir;
      }

      @Override
      public File getAddonBaseDir(AddonId addon)
      {
         return null;
      }

      @Override
      public Set<AddonDependencyEntry> getAddonDependencies(AddonId addon)
      {
         return Collections.emptySet();
      }

      @Override
      public File getAddonDescriptor(AddonId addon)
      {
         return null;
      }

      @Override
      public List<File> getAddonResources(AddonId addon)
      {
         return Collections.emptyList();
      }

      @Override
      public File getRootDirectory()
      {
         return rootDir;
      }

      @Override
      public boolean isDeployed(AddonId addon)
      {
         return false;
      }

      @Override
      public boolean isEnabled(AddonId addon)
      {
         return false;
      }

      @Override
      public List<AddonId> listEnabled()
      {
         return Collections.emptyList();
      }

      @Override
      public List<AddonId> listEnabledCompatibleWithVersion(Version version)
      {
         return null;
      }

      @Override
      public Date getLastModified()
      {
         return modified;
      }

      @Override
      public int getVersion()
      {
         return 0;
      }
   }
}
TOP

Related Classes of org.jboss.forge.furnace.FurnaceImplTest$TestAddonRepository

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.