001 /*
002 * Copyright 2002-2004 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.binding.value.support;
017
018 import org.springframework.binding.value.CommitTrigger;
019 import org.springframework.binding.value.CommitTriggerListener;
020
021 import junit.framework.TestCase;
022
023 /**
024 * Tests class {@link CommitTrigger}.
025 *
026 * @author Oliver Hutchison
027 */
028 public class CommitTriggerTests extends TestCase {
029
030 public void testCommitTrigger() {
031 CommitTrigger ct = new CommitTrigger();
032 ct.commit();
033 ct.revert();
034
035 TestCommitTriggerListener l = new TestCommitTriggerListener();
036 ct.addCommitTriggerListener(l);
037 assertEquals(0, l.commits);
038 assertEquals(0, l.reverts);
039
040 ct.commit();
041 assertEquals(1, l.commits);
042 ct.commit();
043 assertEquals(2, l.commits);
044 assertEquals(0, l.reverts);
045 ct.revert();
046 assertEquals(2, l.commits);
047 assertEquals(1, l.reverts);
048
049 ct.removeCommitTriggerListener(l);
050
051 ct.commit();
052 assertEquals(2, l.commits);
053 ct.revert();
054 assertEquals(1, l.reverts);
055 }
056
057 private class TestCommitTriggerListener implements CommitTriggerListener {
058
059 public int commits;
060
061 int reverts;
062
063 public void commit() {
064 commits++;
065 }
066
067 public void revert() {
068 reverts++;
069 }
070 }
071 }