001/*
002 *  jDTAUS Banking Test Suite
003 *  Copyright (C) 2005 Christian Schulte
004 *  <cs@schulte.it>
005 *
006 *  This library is free software; you can redistribute it and/or
007 *  modify it under the terms of the GNU Lesser General Public
008 *  License as published by the Free Software Foundation; either
009 *  version 2.1 of the License, or any later version.
010 *
011 *  This library is distributed in the hope that it will be useful,
012 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
013 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014 *  Lesser General Public License for more details.
015 *
016 *  You should have received a copy of the GNU Lesser General Public
017 *  License along with this library; if not, write to the Free Software
018 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
019 *
020 */
021package org.jdtaus.banking.it;
022
023import junit.framework.Assert;
024import junit.framework.TestCase;
025import org.jdtaus.banking.Bankleitzahl;
026import org.jdtaus.banking.BankleitzahlExpirationException;
027import org.jdtaus.banking.BankleitzahlenVerzeichnis;
028
029/**
030 * Testcase for {@code BankleitzahlenVerzeichnis} implementations.
031 *
032 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
033 * @version $JDTAUS: BankleitzahlenVerzeichnisTest.java 8723 2012-10-04 20:09:53Z schulte $
034 */
035public class BankleitzahlenVerzeichnisTest extends TestCase
036{
037
038    /** Implementation to test. */
039    private BankleitzahlenVerzeichnis directory;
040
041    /**
042     * Gets the {@code BankleitzahlenVerzeichnis} implementation tests are performed with.
043     *
044     * @return the {@code BankleitzahlenVerzeichnis} implementation tests are performed with.
045     */
046    public BankleitzahlenVerzeichnis getBankleitzahlenVerzeichnis()
047    {
048        return this.directory;
049    }
050
051    /**
052     * Sets the {@code BankleitzahlenVerzeichnis} implementation tests are performed with.
053     *
054     * @param value the {@code BankleitzahlenVerzeichnis} implementation to perform tests with.
055     */
056    public final void setBankleitzahlenVerzeichnis( final BankleitzahlenVerzeichnis value )
057    {
058        this.directory = value;
059    }
060
061    /**
062     * Tests the {@link BankleitzahlenVerzeichnis#getHeadOffice(Bankleitzahl)} method to handle {@code null} references
063     * correctly by throwing a corresponding {@code NullPointerException}.
064     */
065    public void testGetHeadOfficeNull() throws Exception
066    {
067        assert this.getBankleitzahlenVerzeichnis() != null;
068
069        try
070        {
071            this.getBankleitzahlenVerzeichnis().getHeadOffice( null );
072            throw new AssertionError();
073        }
074        catch ( NullPointerException e )
075        {
076            Assert.assertNotNull( e.getMessage() );
077            System.out.println( e.toString() );
078        }
079
080    }
081
082    /**
083     * Tests the {@link BankleitzahlenVerzeichnis#getBranchOffices(Bankleitzahl)} method to handle {@code null}
084     * references correctly by throwing a corresponding {@code NullPointerException}.
085     */
086    public void testGetBranchOfficesNull() throws Exception
087    {
088        assert this.getBankleitzahlenVerzeichnis() != null;
089
090        try
091        {
092            this.getBankleitzahlenVerzeichnis().getBranchOffices( null );
093            throw new AssertionError();
094        }
095        catch ( NullPointerException e )
096        {
097            Assert.assertNotNull( e.getMessage() );
098            System.out.println( e.toString() );
099        }
100
101    }
102
103    /**
104     * Tests the {@link BankleitzahlenVerzeichnis#getDateOfExpiration()} method to not return a {@code null} value.
105     */
106    public void testGetDateOfExpirationNull() throws Exception
107    {
108        assert this.getBankleitzahlenVerzeichnis() != null;
109
110        Assert.assertNotNull( this.getBankleitzahlenVerzeichnis().getDateOfExpiration() );
111        System.out.println( this.getBankleitzahlenVerzeichnis().getDateOfExpiration() );
112    }
113
114    /**
115     * Tests the {@link BankleitzahlenVerzeichnis#getHeadOffice(Bankleitzahl)} and
116     * {@link BankleitzahlenVerzeichnis#getBranchOffices(Bankleitzahl)} methods to throw a
117     * {@code BankleitzahlExpirationException} for the expired Bankleitzahl 26264884 and 83064538.
118     */
119    public void testBankleitzahlExpirationException() throws Exception
120    {
121        assert this.getBankleitzahlenVerzeichnis() != null;
122
123        try
124        {
125            this.getBankleitzahlenVerzeichnis().getHeadOffice( Bankleitzahl.valueOf( "26264884" ) );
126            throw new AssertionError();
127        }
128        catch ( BankleitzahlExpirationException e )
129        {
130            Assert.assertNotNull( e.getMessage() );
131            System.out.println( e.toString() );
132        }
133
134        try
135        {
136            this.getBankleitzahlenVerzeichnis().getHeadOffice( Bankleitzahl.valueOf( "83064538" ) );
137            throw new AssertionError();
138        }
139        catch ( BankleitzahlExpirationException e )
140        {
141            Assert.assertNotNull( e.getMessage() );
142            System.out.println( e.toString() );
143        }
144
145        try
146        {
147            this.getBankleitzahlenVerzeichnis().getBranchOffices( Bankleitzahl.valueOf( "26264884" ) );
148            throw new AssertionError();
149        }
150        catch ( BankleitzahlExpirationException e )
151        {
152            Assert.assertNotNull( e.getMessage() );
153            System.out.println( e.toString() );
154        }
155
156        try
157        {
158            this.getBankleitzahlenVerzeichnis().getBranchOffices( Bankleitzahl.valueOf( "83064538" ) );
159            throw new AssertionError();
160        }
161        catch ( BankleitzahlExpirationException e )
162        {
163            Assert.assertNotNull( e.getMessage() );
164            System.out.println( e.toString() );
165        }
166
167    }
168
169    /**
170     * Tests the {@link BankleitzahlenVerzeichnis#search(String,String,String,boolean)} method to return sane values.
171     */
172    public void testSearch() throws Exception
173    {
174        assert this.getBankleitzahlenVerzeichnis() != null;
175        Assert.assertTrue( this.getBankleitzahlenVerzeichnis().search( null, null, null, true ).length >= 0 );
176    }
177
178    /**
179     * Tests the {@link BankleitzahlenVerzeichnis#searchBankleitzahlInfos(String,String,String,Boolean,Boolean)} method
180     * to return sane values.
181     */
182    public void testSearchBankleitzahlInfos() throws Exception
183    {
184        assert this.getBankleitzahlenVerzeichnis() != null;
185        Assert.assertTrue( this.getBankleitzahlenVerzeichnis().searchBankleitzahlInfos(
186            null, null, null, null, null ).length >= 0 );
187
188    }
189
190}