001: package com.ecyrd.jspwiki.workflow;
002:
003: import java.util.Locale;
004: import java.util.Properties;
005:
006: import junit.framework.TestCase;
007:
008: import com.ecyrd.jspwiki.TestEngine;
009: import com.ecyrd.jspwiki.WikiEngine;
010: import com.ecyrd.jspwiki.i18n.InternationalizationManager;
011:
012: public class OutcomeTest extends TestCase {
013:
014: public void testGetKey() {
015: assertEquals("outcome.decision.approve",
016: Outcome.DECISION_APPROVE.getMessageKey());
017: assertEquals("outcome.decision.hold", Outcome.DECISION_HOLD
018: .getMessageKey());
019: assertEquals("outcome.decision.deny", Outcome.DECISION_DENY
020: .getMessageKey());
021: assertEquals("outcome.decision.reassign",
022: Outcome.DECISION_REASSIGN.getMessageKey());
023: }
024:
025: public void testHashCode() {
026: assertEquals("outcome.decision.approve".hashCode(),
027: Outcome.DECISION_APPROVE.hashCode());
028: assertEquals("outcome.decision.hold".hashCode() * 2,
029: Outcome.DECISION_HOLD.hashCode());
030: assertEquals("outcome.decision.deny".hashCode(),
031: Outcome.DECISION_DENY.hashCode());
032: assertEquals("outcome.decision.reassign".hashCode() * 2,
033: Outcome.DECISION_REASSIGN.hashCode());
034: }
035:
036: public void testEquals() {
037: assertEquals(Outcome.DECISION_APPROVE, Outcome.DECISION_APPROVE);
038: assertNotSame(Outcome.DECISION_APPROVE,
039: Outcome.DECISION_REASSIGN);
040: }
041:
042: public void testMessage() throws Exception {
043: Properties props = new Properties();
044: props.load(TestEngine.findTestProperties());
045: WikiEngine engine = new TestEngine(props);
046: InternationalizationManager i18n = engine
047: .getInternationalizationManager();
048: String core = InternationalizationManager.CORE_BUNDLE;
049: Locale english = Locale.ENGLISH;
050: Outcome o;
051:
052: o = Outcome.DECISION_APPROVE;
053: assertEquals("Approve", i18n.get(core, english, o
054: .getMessageKey()));
055:
056: o = Outcome.DECISION_DENY;
057: assertEquals("Deny", i18n.get(core, english, o.getMessageKey()));
058:
059: o = Outcome.DECISION_HOLD;
060: assertEquals("Hold", i18n.get(core, english, o.getMessageKey()));
061:
062: o = Outcome.DECISION_REASSIGN;
063: assertEquals("Reassign", i18n.get(core, english, o
064: .getMessageKey()));
065: }
066:
067: public void testIsCompletion() {
068: assertTrue(Outcome.DECISION_ACKNOWLEDGE.isCompletion());
069: assertTrue(Outcome.DECISION_APPROVE.isCompletion());
070: assertTrue(Outcome.DECISION_DENY.isCompletion());
071: assertFalse(Outcome.DECISION_HOLD.isCompletion());
072: assertFalse(Outcome.DECISION_REASSIGN.isCompletion());
073: assertTrue(Outcome.STEP_ABORT.isCompletion());
074: assertTrue(Outcome.STEP_COMPLETE.isCompletion());
075: assertFalse(Outcome.STEP_CONTINUE.isCompletion());
076: }
077:
078: public void testForName() {
079: try {
080: assertEquals(Outcome.DECISION_ACKNOWLEDGE, Outcome
081: .forName("outcome.decision.acknowledge"));
082: assertEquals(Outcome.DECISION_APPROVE, Outcome
083: .forName("outcome.decision.approve"));
084: assertEquals(Outcome.DECISION_DENY, Outcome
085: .forName("outcome.decision.deny"));
086: assertEquals(Outcome.DECISION_HOLD, Outcome
087: .forName("outcome.decision.hold"));
088: assertEquals(Outcome.DECISION_REASSIGN, Outcome
089: .forName("outcome.decision.reassign"));
090: assertEquals(Outcome.STEP_ABORT, Outcome
091: .forName("outcome.step.abort"));
092: assertEquals(Outcome.STEP_COMPLETE, Outcome
093: .forName("outcome.step.complete"));
094: assertEquals(Outcome.STEP_CONTINUE, Outcome
095: .forName("outcome.step.continue"));
096: } catch (NoSuchOutcomeException e) {
097: // We should never get here
098: fail("Could not look up an Outcome...");
099: }
100:
101: // Look for a non-existent one
102: try {
103: Outcome.forName("outcome.decision.nonexistent");
104: } catch (NoSuchOutcomeException e) {
105: return;
106: }
107: // We should never get here
108: fail("Could not look up an Outcome...");
109: }
110:
111: }
|