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 }