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: WriteModelTaskTest.java 4613 2012-09-22 10:07:08Z schulte $
029 *
030 */
031package org.jomc.ant.test;
032
033import org.apache.tools.ant.BuildException;
034import org.apache.tools.ant.Project;
035import org.jomc.ant.WriteModelTask;
036import org.jomc.ant.test.support.AntExecutionResult;
037import static org.jomc.ant.test.support.Assert.assertException;
038import static org.jomc.ant.test.support.Assert.assertExceptionMessage;
039import static org.jomc.ant.test.support.Assert.assertMessageLogged;
040import static org.jomc.ant.test.support.Assert.assertMessageLoggedContaining;
041import static org.jomc.ant.test.support.Assert.assertNoException;
042import org.junit.Test;
043
044/**
045 * Test cases for class {@code org.jomc.ant.WriteModelTask}.
046 *
047 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
048 * @version $JOMC: WriteModelTaskTest.java 4613 2012-09-22 10:07:08Z schulte $
049 */
050public class WriteModelTaskTest extends JomcModelTaskTest
051{
052
053    /** Creates a new {@code WriteModelTaskTest} instance. */
054    public WriteModelTaskTest()
055    {
056        super();
057    }
058
059    /** {@inheritDoc} */
060    @Override
061    public WriteModelTask getJomcTask()
062    {
063        return (WriteModelTask) super.getJomcTask();
064    }
065
066    /** {@inheritDoc} */
067    @Override
068    protected WriteModelTask newJomcTask()
069    {
070        return new WriteModelTask();
071    }
072
073    /** {@inheritDoc} */
074    @Override
075    protected String getBuildFileName()
076    {
077        return "write-model-task-test.xml";
078    }
079
080    @Test
081    public final void testSpecificationNotFound() throws Exception
082    {
083        final AntExecutionResult r = this.executeTarget( "test-specification-not-found" );
084        assertNoException( r );
085        assertMessageLogged( r, "Specification 'DOES NOT EXIST' not found.", Project.MSG_WARN );
086    }
087
088    @Test
089    public final void testImplementationNotFound() throws Exception
090    {
091        final AntExecutionResult r = this.executeTarget( "test-implementation-not-found" );
092        assertNoException( r );
093        assertMessageLogged( r, "Implementation 'DOES NOT EXIST' not found.", Project.MSG_WARN );
094    }
095
096    @Test
097    public final void testModuleNotFound() throws Exception
098    {
099        final AntExecutionResult r = this.executeTarget( "test-module-not-found" );
100        assertNoException( r );
101        assertMessageLogged( r, "Module 'DOES NOT EXIST' not found.", Project.MSG_WARN );
102    }
103
104    @Test
105    public final void testWriteModelAllAttributes() throws Exception
106    {
107        final AntExecutionResult r = this.executeTarget( "test-write-model-all-attributes" );
108        assertNoException( r );
109        assertMessageLoggedContaining( r, "Writing", Project.MSG_INFO );
110    }
111
112}