001 /*
002 * Copyright (C) Christian Schulte, 2005-206
003 * All rights reserved.
004 *
005 * Redistribution and use in source and binary forms, with or without
006 * modification, are permitted provided that the following conditions
007 * are met:
008 *
009 * o Redistributions of source code must retain the above copyright
010 * notice, this list of conditions and the following disclaimer.
011 *
012 * o Redistributions in binary form must reproduce the above copyright
013 * notice, this list of conditions and the following disclaimer in
014 * the documentation and/or other materials provided with the
015 * distribution.
016 *
017 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
018 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
019 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
020 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
021 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
022 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
023 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
024 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
025 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
026 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
027 *
028 * $JOMC: PropertyExceptionTest.java 3868 2011-10-14 13:23:09Z schulte2005 $
029 *
030 */
031 package org.jomc.model.test;
032
033 import java.io.IOException;
034 import java.io.ObjectInputStream;
035 import org.jomc.model.PropertyException;
036 import org.junit.Test;
037 import static org.junit.Assert.assertEquals;
038
039 /**
040 * Test cases for class {@code org.jomc.model.PropertyException}.
041 *
042 * @author <a href="mailto:schulte2005@users.sourceforge.net">Christian Schulte</a> 1.0
043 * @version $JOMC: PropertyExceptionTest.java 3868 2011-10-14 13:23:09Z schulte2005 $
044 */
045 public class PropertyExceptionTest
046 {
047
048 /** Constant to prefix relative resource names with. */
049 private static final String ABSOLUTE_RESOURCE_NAME_PREFIX = "/org/jomc/model/test/";
050
051 /** Creates a new {@code PropertyExceptionTest} instance. */
052 public PropertyExceptionTest()
053 {
054 super();
055 }
056
057 @Test
058 public final void testSerializabe() throws Exception
059 {
060 ObjectInputStream in = null;
061 boolean suppressExceptionOnClose = true;
062
063 try
064 {
065 in = new ObjectInputStream( this.getClass().getResourceAsStream(
066 ABSOLUTE_RESOURCE_NAME_PREFIX + "PropertyException.ser" ) );
067
068 final PropertyException e = (PropertyException) in.readObject();
069 suppressExceptionOnClose = false;
070 assertEquals( "PropertyException", e.getMessage() );
071 System.out.println( e );
072 }
073 finally
074 {
075 try
076 {
077 if ( in != null )
078 {
079 in.close();
080 }
081 }
082 catch ( final IOException e )
083 {
084 if ( !suppressExceptionOnClose )
085 {
086 throw e;
087 }
088 }
089 }
090 }
091
092 }