/** * 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.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.candlepin.model.ConsumerType.ConsumerTypeEnum; import org.candlepin.model.activationkeys.ActivationKey; import org.candlepin.model.activationkeys.ActivationKeyContentOverride; import org.candlepin.model.activationkeys.ActivationKeyContentOverrideCurator; import org.candlepin.model.activationkeys.ActivationKeyCurator; import org.candlepin.test.DatabaseTestFixture; import org.junit.Before; import org.junit.Test; import java.util.List; import javax.inject.Inject; /** * ActivationKeyContentOverrideCuratorTest * * Slightly modified from ConsumerContentOverrideCuratorTest */ public class ActivationKeyContentOverrideCuratorTest extends DatabaseTestFixture { @Inject private OwnerCurator ownerCurator; @Inject private ConsumerTypeCurator consumerTypeCurator; @Inject private ActivationKeyCurator activationKeyCurator; @Inject private ActivationKeyContentOverrideCurator activationKeyContentOverrideCurator; private Owner owner; private ConsumerType ct; private ActivationKey key; @Before public void setUp() { owner = new Owner("test-owner", "Test Owner"); owner = ownerCurator.create(owner); ct = new ConsumerType(ConsumerTypeEnum.SYSTEM); ct = consumerTypeCurator.create(ct); key = new ActivationKey("a key", owner); activationKeyCurator.create(key); } @Test public void normalCreateAndRetrieve() { ActivationKeyContentOverride cco = new ActivationKeyContentOverride( key, "test-content", "name", "value"); activationKeyContentOverrideCurator.create(cco); ActivationKeyContentOverride cco2 = activationKeyContentOverrideCurator.retrieve( key, "test-content", "name"); assert (cco2 != null); assertEquals("value", cco2.getValue()); } @Test public void normalCreateAndUpdate() { ActivationKeyContentOverride cco = new ActivationKeyContentOverride( key, "test-content", "name", "value"); activationKeyContentOverrideCurator.create(cco); cco.setValue("value-update"); activationKeyContentOverrideCurator.merge(cco); ActivationKeyContentOverride cco2 = activationKeyContentOverrideCurator.retrieve(key, "test-content", "name"); assert (cco2 != null); assertEquals("value-update", cco2.getValue()); } @Test public void deleteByName() { ActivationKeyContentOverride cco = new ActivationKeyContentOverride( key, "test-content", "name", "value"); activationKeyContentOverrideCurator.create(cco); activationKeyContentOverrideCurator.removeByName(key, "test-content", "name"); ActivationKeyContentOverride cco2 = activationKeyContentOverrideCurator.retrieve( key, "test-content", "name"); assert (cco2 == null); } @Test public void deleteByLabel() { ActivationKeyContentOverride cco1 = new ActivationKeyContentOverride( key, "test-content", "name1", "value"); activationKeyContentOverrideCurator.create(cco1); ActivationKeyContentOverride cco2 = new ActivationKeyContentOverride( key, "test-content", "name2", "value"); activationKeyContentOverrideCurator.create(cco2); activationKeyContentOverrideCurator.removeByContentLabel(key, "test-content"); List<ActivationKeyContentOverride> ccoList = activationKeyContentOverrideCurator.listAll().list(); assertEquals(ccoList.size(), 0); } @Test public void deleteByConsumer() { ActivationKeyContentOverride cco1 = new ActivationKeyContentOverride( key, "test-content1", "name1", "value"); activationKeyContentOverrideCurator.create(cco1); ActivationKeyContentOverride cco2 = new ActivationKeyContentOverride( key, "test-content2", "name2", "value"); activationKeyContentOverrideCurator.create(cco2); activationKeyContentOverrideCurator.removeByParent(key); List<ActivationKeyContentOverride> ccoList = activationKeyContentOverrideCurator.listAll().list(); assertEquals(ccoList.size(), 0); } @Test public void testAddOrUpdateUpdatesValue() { ActivationKeyContentOverride cco1 = new ActivationKeyContentOverride( key, "test-content1", "name1", "value"); activationKeyContentOverrideCurator.create(cco1); ActivationKeyContentOverride cco2 = new ActivationKeyContentOverride( key, "test-content1", "name1", "value2"); activationKeyContentOverrideCurator.addOrUpdate(key, cco2); List<ActivationKeyContentOverride> ccoList = activationKeyContentOverrideCurator.listAll().list(); assertEquals(1, ccoList.size()); assertEquals("value2", ccoList.get(0).getValue()); } @Test public void testAddOrUpdateCreatesNew() { ActivationKeyContentOverride cco1 = new ActivationKeyContentOverride( key, "test-content1", "name1", "value"); activationKeyContentOverrideCurator.create(cco1); ActivationKeyContentOverride cco2 = new ActivationKeyContentOverride( key, "test-content2", "name2", "value2"); activationKeyContentOverrideCurator.addOrUpdate(key, cco2); List<ActivationKeyContentOverride> ccoList = activationKeyContentOverrideCurator.listAll().list(); assertEquals(2, ccoList.size()); } @Test public void testCreateOverride() { ActivationKeyContentOverride override = new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "1"); assertEquals(override, this.activationKeyContentOverrideCurator.create(override)); } @Test public void testCreateOverrideForcesLowercaseName() { ActivationKeyContentOverride override = new ActivationKeyContentOverride(key, "test-repo", "GpGCheck", "1"); ActivationKeyContentOverride created = this.activationKeyContentOverrideCurator.create(override); assertEquals("gpgcheck", created.getName()); } @Test public void testModifyOverride() { ActivationKeyContentOverride override = new ActivationKeyContentOverride(key, "test-repo", "GpGCheck", "1"); ActivationKeyContentOverride created = this.activationKeyContentOverrideCurator.create(override); created.setValue("0"); ActivationKeyContentOverride merged = this.activationKeyContentOverrideCurator.merge(created); assertEquals("0", merged.getValue()); } @Test public void testModifyOverrideForcesNameToLowercase() { ActivationKeyContentOverride override = new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "0"); ActivationKeyContentOverride created = this.activationKeyContentOverrideCurator.create(override); created.setName("GPGCHECK"); ActivationKeyContentOverride merged = this.activationKeyContentOverrideCurator.merge(created); assertEquals("gpgcheck", merged.getName()); } @Test public void testRetrieveByName() { activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "1")); ActivationKeyContentOverride found = activationKeyContentOverrideCurator .retrieve(key, "test-repo", "gpgcheck"); assertNotNull(found); assertEquals(key, found.getKey()); assertEquals("test-repo", found.getContentLabel()); assertEquals("gpgcheck", found.getName()); assertEquals("1", found.getValue()); } @Test public void testRetrieveByNameIsCaseInsensitive() { activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "1")); ActivationKeyContentOverride found = activationKeyContentOverrideCurator.retrieve(key, "test-repo", "GPGCheck"); assertNotNull(found); assertEquals(key, found.getKey()); assertEquals("test-repo", found.getContentLabel()); assertEquals("gpgcheck", found.getName()); assertEquals("1", found.getValue()); } @Test public void testRetrieveByNameDoesntExist() { ActivationKeyContentOverride found = activationKeyContentOverrideCurator.retrieve(key, "not-a-repo", "gpgcheck"); assertNull(found); } @Test public void testRemoveByName() { activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "1")); activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "remaining-override", "remaining")); activationKeyContentOverrideCurator.removeByName(key, "test-repo", "gpgcheck"); List<ActivationKeyContentOverride> remaining = activationKeyContentOverrideCurator.getList(key); assertEquals(1, remaining.size()); assertEquals("remaining-override", remaining.get(0).getName()); } @Test public void testRemoveByNameCaseInsensitive() { activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "1")); activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "remaining-override", "remaining")); activationKeyContentOverrideCurator.removeByName(key, "test-repo", "GpGChecK"); List<ActivationKeyContentOverride> remaining = activationKeyContentOverrideCurator.getList(key); assertEquals(1, remaining.size()); assertEquals("remaining-override", remaining.get(0).getName()); } @Test public void testRemoveByContentLabel() { activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "1")); activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "foo", "foo-v")); activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "should-remain", "remaining", "true")); activationKeyContentOverrideCurator.removeByContentLabel(key, "test-repo"); List<ActivationKeyContentOverride> remaining = activationKeyContentOverrideCurator.getList(key); assertEquals(1, remaining.size()); assertEquals("should-remain", remaining.get(0).getContentLabel()); assertEquals("remaining", remaining.get(0).getName()); } @Test public void testRemoveByConsumer() { ActivationKey key2 = new ActivationKey("other key", owner); key2 = activationKeyCurator.create(key2); activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key2, "test-repo", "gpgcheck", "1")); activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "test-repo", "gpgcheck", "1")); activationKeyContentOverrideCurator.create(new ActivationKeyContentOverride(key, "another-test-repo", "gpgcheck", "0")); activationKeyContentOverrideCurator.removeByParent(key); assertTrue(activationKeyContentOverrideCurator.getList(key).isEmpty()); assertEquals(1, activationKeyContentOverrideCurator.getList(key2).size()); } }