/** * 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.test.DatabaseTestFixture; import org.junit.Before; import org.junit.Test; import java.util.List; import javax.inject.Inject; /** * ConsumerContentOverrideCuratorTest */ public class ConsumerContentOverrideCuratorTest extends DatabaseTestFixture { @Inject private OwnerCurator ownerCurator; @Inject private ConsumerCurator consumerCurator; @Inject private ConsumerTypeCurator consumerTypeCurator; @Inject private ConsumerContentOverrideCurator consumerContentOverrideCurator; private Owner owner; private ConsumerType ct; private Consumer consumer; @Before public void setUp() { owner = new Owner("test-owner", "Test Owner"); owner = ownerCurator.create(owner); ct = new ConsumerType(ConsumerTypeEnum.SYSTEM); ct = consumerTypeCurator.create(ct); consumer = new Consumer("a consumer", "username", owner, ct); consumerCurator.create(consumer); } @Test public void normalCreateAndRetrieve() { ConsumerContentOverride cco = new ConsumerContentOverride( consumer, "test-content", "name", "value"); consumerContentOverrideCurator.create(cco); ConsumerContentOverride cco2 = consumerContentOverrideCurator.retrieve( consumer, "test-content", "name"); assert (cco2 != null); assertEquals("value", cco2.getValue()); } @Test public void normalCreateAndUpdate() { ConsumerContentOverride cco = new ConsumerContentOverride( consumer, "test-content", "name", "value"); consumerContentOverrideCurator.create(cco); cco.setValue("value-update"); consumerContentOverrideCurator.merge(cco); ConsumerContentOverride cco2 = consumerContentOverrideCurator.retrieve( consumer, "test-content", "name"); assert (cco2 != null); assertEquals("value-update", cco2.getValue()); } @Test public void deleteByName() { ConsumerContentOverride cco = new ConsumerContentOverride( consumer, "test-content", "name", "value"); consumerContentOverrideCurator.create(cco); consumerContentOverrideCurator.removeByName(consumer, "test-content", "name"); ConsumerContentOverride cco2 = consumerContentOverrideCurator.retrieve( consumer, "test-content", "name"); assert (cco2 == null); } @Test public void deleteByNameCaseInsensitive() { ConsumerContentOverride cco = new ConsumerContentOverride( consumer, "test-content", "naME", "value"); consumerContentOverrideCurator.create(cco); consumerContentOverrideCurator.removeByName(consumer, "test-content", "nAMe"); ConsumerContentOverride cco2 = consumerContentOverrideCurator.retrieve( consumer, "test-content", "naME"); assertNull(cco2); } @Test public void retrieveByNameCaseInsensitive() { ConsumerContentOverride cco = new ConsumerContentOverride( consumer, "test-content", "naME", "value"); consumerContentOverrideCurator.create(cco); ConsumerContentOverride ccof1 = consumerContentOverrideCurator.retrieve( consumer, "test-content", "naME"); ConsumerContentOverride ccof2 = consumerContentOverrideCurator.retrieve( consumer, "test-content", "Name"); assertNotNull(ccof1); assertNotNull(ccof2); } @Test public void deleteByLabel() { ConsumerContentOverride cco1 = new ConsumerContentOverride( consumer, "test-content", "name1", "value"); consumerContentOverrideCurator.create(cco1); ConsumerContentOverride cco2 = new ConsumerContentOverride( consumer, "test-content", "name2", "value"); consumerContentOverrideCurator.create(cco2); consumerContentOverrideCurator.removeByContentLabel(consumer, "test-content"); List<ConsumerContentOverride> ccoList = consumerContentOverrideCurator.listAll().list(); assertEquals(ccoList.size(), 0); } @Test public void deleteByConsumer() { ConsumerContentOverride cco1 = new ConsumerContentOverride( consumer, "test-content1", "name1", "value"); consumerContentOverrideCurator.create(cco1); ConsumerContentOverride cco2 = new ConsumerContentOverride( consumer, "test-content2", "name2", "value"); consumerContentOverrideCurator.create(cco2); consumerContentOverrideCurator.removeByParent(consumer); List<ConsumerContentOverride> ccoList = consumerContentOverrideCurator.listAll().list(); assertEquals(ccoList.size(), 0); } @Test public void testAddOrUpdateUpdatesValue() { ConsumerContentOverride cco1 = new ConsumerContentOverride( consumer, "test-content1", "name1", "value"); consumerContentOverrideCurator.create(cco1); ConsumerContentOverride cco2 = new ConsumerContentOverride( consumer, "test-content1", "name1", "value2"); consumerContentOverrideCurator.addOrUpdate(consumer, cco2); List<ConsumerContentOverride> ccoList = consumerContentOverrideCurator.listAll().list(); assertEquals(1, ccoList.size()); assertEquals("value2", ccoList.get(0).getValue()); } @Test public void testAddOrUpdateCreatesNew() { ConsumerContentOverride cco1 = new ConsumerContentOverride( consumer, "test-content1", "name1", "value"); consumerContentOverrideCurator.create(cco1); ConsumerContentOverride cco2 = new ConsumerContentOverride( consumer, "test-content2", "name2", "value2"); consumerContentOverrideCurator.addOrUpdate(consumer, cco2); List<ConsumerContentOverride> ccoList = consumerContentOverrideCurator.listAll().list(); assertEquals(2, ccoList.size()); } @Test public void testCreateOverride() { ConsumerContentOverride override = new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "1"); assertEquals(override, this.consumerContentOverrideCurator.create(override)); } @Test public void testCreateOverrideForcesLowercaseName() { ConsumerContentOverride override = new ConsumerContentOverride(consumer, "test-repo", "GpGCheck", "1"); ConsumerContentOverride created = this.consumerContentOverrideCurator.create(override); assertEquals("gpgcheck", created.getName()); } @Test public void testModifyOverride() { ConsumerContentOverride override = new ConsumerContentOverride(consumer, "test-repo", "GpGCheck", "1"); ConsumerContentOverride created = this.consumerContentOverrideCurator.create(override); created.setValue("0"); ConsumerContentOverride merged = this.consumerContentOverrideCurator.merge(created); assertEquals("0", merged.getValue()); } @Test public void testModifyOverrideForcesNameToLowercase() { ConsumerContentOverride override = new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "0"); ConsumerContentOverride created = this.consumerContentOverrideCurator.create(override); created.setName("GPGCHECK"); ConsumerContentOverride merged = this.consumerContentOverrideCurator.merge(created); assertEquals("gpgcheck", merged.getName()); } @Test public void testRetrieveByName() { consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "1")); ConsumerContentOverride found = consumerContentOverrideCurator.retrieve(consumer, "test-repo", "gpgcheck"); assertNotNull(found); assertEquals(consumer, found.getConsumer()); assertEquals("test-repo", found.getContentLabel()); assertEquals("gpgcheck", found.getName()); assertEquals("1", found.getValue()); } @Test public void testRetrieveByNameIsCaseInsensitive() { consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "1")); ConsumerContentOverride found = consumerContentOverrideCurator.retrieve(consumer, "test-repo", "GPGCheck"); assertNotNull(found); assertEquals(consumer, found.getConsumer()); assertEquals("test-repo", found.getContentLabel()); assertEquals("gpgcheck", found.getName()); assertEquals("1", found.getValue()); } @Test public void testRetrieveByNameDoesntExist() { ConsumerContentOverride found = consumerContentOverrideCurator.retrieve(consumer, "not-a-repo", "gpgcheck"); assertNull(found); } @Test public void testRemoveByName() { consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "1")); consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "remaining-override", "remaining")); consumerContentOverrideCurator.removeByName(consumer, "test-repo", "gpgcheck"); List<ConsumerContentOverride> remaining = consumerContentOverrideCurator.getList(consumer); assertEquals(1, remaining.size()); assertEquals("remaining-override", remaining.get(0).getName()); } @Test public void testRemoveByNameCaseInsensitive() { consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "1")); consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "remaining-override", "remaining")); consumerContentOverrideCurator.removeByName(consumer, "test-repo", "GpGChecK"); List<ConsumerContentOverride> remaining = consumerContentOverrideCurator.getList(consumer); assertEquals(1, remaining.size()); assertEquals("remaining-override", remaining.get(0).getName()); } @Test public void testRemoveByContentLabel() { consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "1")); consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "foo", "foo-v")); consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "should-remain", "remaining", "true")); consumerContentOverrideCurator.removeByContentLabel(consumer, "test-repo"); List<ConsumerContentOverride> remaining = consumerContentOverrideCurator.getList(consumer); assertEquals(1, remaining.size()); assertEquals("should-remain", remaining.get(0).getContentLabel()); assertEquals("remaining", remaining.get(0).getName()); } @Test public void testRemoveByConsumer() { Consumer consumer2 = createConsumer(owner); consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer2, "test-repo", "gpgcheck", "1")); consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "test-repo", "gpgcheck", "1")); consumerContentOverrideCurator.create(new ConsumerContentOverride(consumer, "another-test-repo", "gpgcheck", "0")); consumerContentOverrideCurator.removeByParent(consumer); assertTrue(consumerContentOverrideCurator.getList(consumer).isEmpty()); assertEquals(1, consumerContentOverrideCurator.getList(consumer2).size()); } }