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: JomcToolTaskTest.java 3879 2011-10-24 00:59:27Z schulte2005 $ 029 * 030 */ 031 package org.jomc.ant.test; 032 033 import org.apache.tools.ant.BuildException; 034 import org.jomc.ant.JomcToolTask; 035 import org.jomc.ant.test.support.AntExecutionResult; 036 import static org.jomc.ant.test.support.Assert.assertException; 037 import static org.jomc.ant.test.support.Assert.assertExceptionMessage; 038 import org.junit.Test; 039 import static org.junit.Assert.assertNotNull; 040 import static org.junit.Assert.fail; 041 042 /** 043 * Test cases for class {@code org.jomc.ant.JomcToolTask}. 044 * 045 * @author <a href="mailto:schulte2005@users.sourceforge.net">Christian Schulte</a> 046 * @version $JOMC: JomcToolTaskTest.java 3879 2011-10-24 00:59:27Z schulte2005 $ 047 */ 048 public class JomcToolTaskTest extends JomcModelTaskTest 049 { 050 051 /** Creates a new {@code JomcToolTaskTest} instance. */ 052 public JomcToolTaskTest() 053 { 054 super(); 055 } 056 057 /** {@inheritDoc} */ 058 @Override 059 public JomcToolTask getJomcTask() 060 { 061 return (JomcToolTask) super.getJomcTask(); 062 } 063 064 /** {@inheritDoc} */ 065 @Override 066 protected JomcToolTask newJomcTask() 067 { 068 return new JomcToolTask(); 069 } 070 071 /** {@inheritDoc} */ 072 @Override 073 protected String getBuildFileName() 074 { 075 return "jomc-tool-task-test.xml"; 076 } 077 078 @Test 079 public final void testConfigureJomcTool() throws Exception 080 { 081 try 082 { 083 this.getJomcTask().configureJomcTool( null ); 084 fail( "Expected 'NullPointerException' not thrown." ); 085 } 086 catch ( final NullPointerException e ) 087 { 088 assertNotNull( e.getMessage() ); 089 System.out.println( e ); 090 } 091 } 092 093 @Test 094 public final void testGetSpecification() throws Exception 095 { 096 try 097 { 098 this.getJomcTask().getSpecification( null ); 099 fail( "Expected 'NullPointerException' not thrown." ); 100 } 101 catch ( final NullPointerException e ) 102 { 103 assertNotNull( e.getMessage() ); 104 System.out.println( e ); 105 } 106 } 107 108 @Test 109 public final void testGetImplementation() throws Exception 110 { 111 try 112 { 113 this.getJomcTask().getImplementation( null ); 114 fail( "Expected 'NullPointerException' not thrown." ); 115 } 116 catch ( final NullPointerException e ) 117 { 118 assertNotNull( e.getMessage() ); 119 System.out.println( e ); 120 } 121 } 122 123 @Test 124 public final void testGetModule() throws Exception 125 { 126 try 127 { 128 this.getJomcTask().getModule( null ); 129 fail( "Expected 'NullPointerException' not thrown." ); 130 } 131 catch ( final NullPointerException e ) 132 { 133 assertNotNull( e.getMessage() ); 134 System.out.println( e ); 135 } 136 } 137 138 @Test 139 public final void testVelocityPropertyMissingKey() throws Exception 140 { 141 final AntExecutionResult r = this.executeTarget( "test-velocity-property-missing-key" ); 142 assertException( r, BuildException.class ); 143 assertExceptionMessage( r, "Mandatory attribute 'key' is missing a value." ); 144 } 145 146 @Test 147 public final void testVelocityPropertyResourceMissingLocation() throws Exception 148 { 149 final AntExecutionResult r = this.executeTarget( "test-velocity-property-resource-missing-location" ); 150 assertException( r, BuildException.class ); 151 assertExceptionMessage( r, "Mandatory attribute 'location' is missing a value." ); 152 } 153 154 @Test 155 public final void testTemplateParameterMissingKey() throws Exception 156 { 157 final AntExecutionResult r = this.executeTarget( "test-template-parameter-missing-key" ); 158 assertException( r, BuildException.class ); 159 assertExceptionMessage( r, "Mandatory attribute 'key' is missing a value." ); 160 } 161 162 @Test 163 public final void testTemplateParameterResourceMissingLocation() throws Exception 164 { 165 final AntExecutionResult r = this.executeTarget( "test-template-parameter-resource-missing-location" ); 166 assertException( r, BuildException.class ); 167 assertExceptionMessage( r, "Mandatory attribute 'location' is missing a value." ); 168 } 169 170 @Test 171 public final void testInvalidMultipleLocaleElements() throws Exception 172 { 173 final AntExecutionResult r = this.executeTarget( "test-invalid-multiple-locale-elements" ); 174 assertException( r, BuildException.class ); 175 assertExceptionMessage( r, "Multiple nested 'locale' elements." ); 176 } 177 178 }