001: package org.tigris.scarab.om;
002:
003: /* ================================================================
004: * Copyright (c) 2000-2002 CollabNet. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions are
008: * met:
009: *
010: * 1. Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * 2. Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in the
015: * documentation and/or other materials provided with the distribution.
016: *
017: * 3. The end-user documentation included with the redistribution, if
018: * any, must include the following acknowlegement: "This product includes
019: * software developed by Collab.Net <http://www.Collab.Net/>."
020: * Alternately, this acknowlegement may appear in the software itself, if
021: * and wherever such third-party acknowlegements normally appear.
022: *
023: * 4. The hosted project names must not be used to endorse or promote
024: * products derived from this software without prior written
025: * permission. For written permission, please contact info@collab.net.
026: *
027: * 5. Products derived from this software may not use the "Tigris" or
028: * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
029: * prior written permission of Collab.Net.
030: *
031: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
032: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
033: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
034: * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
035: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
036: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
037: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
038: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
039: * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
040: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
041: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
042: *
043: * ====================================================================
044: *
045: * This software consists of voluntary contributions made by many
046: * individuals on behalf of Collab.Net.
047: */
048:
049: import org.apache.torque.om.NumberKey;
050: import org.tigris.scarab.services.cache.ScarabCache;
051: import org.tigris.scarab.test.BaseScarabTestCase;
052: import org.tigris.scarab.util.ScarabException;
053:
054: /**
055: * A Testing Suite for the om.Query class.
056: *
057: * @author <a href="mailto:elicia@collab.net">Elicia David </a>
058: * @version $Id: AttributeGroupTest.java 9271 2004-11-23 08:35:00Z dep4b $
059: */
060: public class AttributeGroupTest extends BaseScarabTestCase {
061: private AttributeGroup group = null;
062:
063: private Attribute severity = null;
064:
065: private Attribute desc = null;
066:
067: private ScarabUser user2;
068:
069: public void setUp() throws Exception {
070: super .setUp();
071: severity = AttributeManager.getInstance(new NumberKey("9"));
072: desc = AttributeManager.getInstance(new NumberKey("1"));
073: group = AttributeGroupManager.getInstance(new NumberKey("131"));
074:
075: }
076:
077: /**
078: * I think we are screwing up other tests..
079: *
080: * @throws Exception
081: */
082: public void OFFtestDeleteAddAttribute() throws Exception {
083:
084: Attribute test = severity.copyAttribute(getUser1());
085: test.save();
086: assertFalse(test.getAttributeId().equals(
087: severity.getAttributeId()));
088: int numberOfAttributes = group.getAttributes().size();
089: group.addAttribute(test);
090: assertEquals(numberOfAttributes + 1, group.getAttributes()
091: .size());
092: try {
093: group.deleteAttribute(test, getUser1(), getModule());
094: fail("User 1 doesn't have permissions to delete attributes.");
095: } catch (Exception e) {
096: assertTrue(e instanceof ScarabException);
097: }
098: group.deleteAttribute(test, getUser2(), getModule());
099: assertEquals(numberOfAttributes, group.getAttributes().size());
100: }
101:
102: protected ScarabUser getUser2() throws Exception {
103: if (user2 == null) {
104: user2 = ScarabUserManager.getInstance(new NumberKey(2),
105: false);
106: }
107: return user2;
108: }
109:
110: public void testGetAttributes() throws Exception {
111: System.out.println("\ntestGetAttributes()");
112: assertTrue(group.getAttributes().size() > 0);
113: }
114:
115: public void testGetRAttributeAttributeGroup() throws Exception {
116:
117: assertEquals(new Integer(9), group.getRAttributeAttributeGroup(
118: severity).getAttributeId());
119: }
120:
121: /**
122: * Can't see to get to work. I can delete the group, but that messes up
123: * other units tests! I can't seem to create and then delete a new group. I
124: * get this error: "Error accessing dedupe sequence for issue type
125: * '{org.tigris.scarab.om.IssueType@1f: name=Defect}'"
126: *
127: * @throws Exception
128: */
129: public void testDelete() throws Exception {
130: System.out.println("\ntestDelete()");
131: AttributeGroup newGroup = group.copyGroup();
132: newGroup.setIssueType(group.getIssueType());
133: newGroup.save();
134: assertFalse(newGroup.getAttributeGroupId().equals(
135: group.getAttributeGroupId()));
136:
137: newGroup.delete();
138: ScarabCache.clear();
139: assertFalse(AttributeGroupManager.exists(newGroup));
140:
141: group = AttributeGroupManager.getInstance(new NumberKey("131"));
142: assertNotNull(group);
143: assertTrue(AttributeGroupManager.exists(group));
144:
145: }
146: }
|