/** * Copyright (c) 2009 - 2012 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package org.candlepin.model; import static org.junit.Assert.*; import org.candlepin.test.DatabaseTestFixture; import org.junit.Before; import org.junit.Test; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.inject.Inject; public class EnvironmentCuratorTest extends DatabaseTestFixture { @Inject private OwnerCurator ownerCurator; @Inject private ContentCurator contentCurator; @Inject private EnvironmentContentCurator envContentCurator; @Inject private EnvironmentCurator envCurator; private Owner owner; private Environment environment; @Before public void setUp() { owner = ownerCurator.create(new Owner("test-owner", "Test Owner")); environment = envCurator.create(new Environment("env1", "Env 1", owner)); } @Test public void create() { assertEquals(1, envCurator.listAll().list().size()); Environment e = envCurator.find("env1"); assertEquals(owner, e.getOwner()); } @Test public void delete() { envCurator.delete(environment); assertEquals(0, envCurator.listAll().list().size()); } @Test public void listForOwner() { List<Environment> envs = envCurator.listForOwner(owner); assertEquals(1, envs.size()); assertEquals(envs.get(0), environment); } @Test public void listForOwnerByName() { Environment e = envCurator.create(new Environment("env2", "Another Env", owner)); List<Environment> envs = envCurator.listForOwnerByName(owner, "Another Env"); assertEquals(1, envs.size()); assertEquals(e, envs.get(0)); } @Test public void listWithContent() { envCurator.create(new Environment("env2", "Another Env", owner)); final String contentId = "contentId"; Content content = this.createContent(contentId, "test content", this.owner); envContentCurator.create(new EnvironmentContent(environment, content, true)); Set<String> ids = new HashSet<String>(); ids.add(contentId); List<Environment> envs = envCurator.listWithContent(ids); assertEquals(1, envs.size()); assertEquals(environment, envs.get(0)); } @Test public void testDeleteEnvironmentForOwner() { Owner owner1 = this.createOwner("owner1"); Owner owner2 = this.createOwner("owner2"); Content content1 = this.createContent("c1", "c1", owner1); Content content2 = this.createContent("c2", "c2", owner1); Content content3 = this.createContent("c3", "c3", owner2); Environment environment1 = this.createEnvironment( owner1, "test_env-1", "test_env-1", null, null, Arrays.asList(content1) ); Environment environment2 = this.createEnvironment( owner1, "test_env-2", "test_env-2", null, null, Arrays.asList(content2) ); Environment environment3 = this.createEnvironment( owner2, "test_env-3", "test_env-3", null, null, Arrays.asList(content3) ); int output = this.environmentCurator.deleteEnvironmentsForOwner(owner1); assertEquals(2, output); this.environmentCurator.evict(environment1); this.environmentCurator.evict(environment2); this.environmentCurator.evict(environment3); environment1 = this.environmentCurator.find(environment1.getId()); environment2 = this.environmentCurator.find(environment2.getId()); environment3 = this.environmentCurator.find(environment3.getId()); assertNull(environment1); assertNull(environment2); assertNotNull(environment3); assertEquals(1, environment3.getEnvironmentContent().size()); assertEquals(content3.getUuid(), environment3.getEnvironmentContent().iterator().next().getContent() .getUuid()); } }