Package org.apache.maven.dotnet.integrationtests

Source Code of org.apache.maven.dotnet.integrationtests.MavenITmng0018CSharpSynchronizeTargetWithSource

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.maven.dotnet.integrationtests;

import org.apache.maven.integrationtests.AbstractMavenIntegrationTestCase;
import org.apache.maven.it.Verifier;
import org.apache.maven.it.util.ResourceExtractor;
import org.apache.maven.dotnet.BuildDirectories;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class MavenITmng0018CSharpSynchronizeTargetWithSource
    extends AbstractMavenIntegrationTestCase
{

    private static final String CS_GEN_FILENAME = "It0018Gen.cs";

    private static final String CS_GEN_SOURCE = "namespace NMaven.IT {\n" + "public class It0018Gen {\n" +
        "    public static void Main () {\n" + "    }\n" + "}" + "}";

    public void testit0018()
        throws Exception
    {
        File testDir = ResourceExtractor.simpleExtractResources( getClass(),
                                                                 "/MavenITmng-0018-CSharpSynchronizeTargetWithSource" );

        // Generate a new CS source file
        File generatedCSSourceFile = new File( testDir, "src/" + CS_GEN_FILENAME );
        BufferedWriter fileWriter = new BufferedWriter( new FileWriter( generatedCSSourceFile ) );
        fileWriter.write( CS_GEN_SOURCE );
        fileWriter.close();

        // Generate a new CS test file
        File generatedCSTargetFile = new File( testDir, "test/" + CS_GEN_FILENAME );
        fileWriter = new BufferedWriter( new FileWriter( generatedCSTargetFile ) );
        fileWriter.write( CS_GEN_SOURCE );
        fileWriter.close();

        Verifier verifier = new Verifier( testDir.getAbsolutePath() );
        verifier.executeGoal( "install" );
        verifier.assertFilePresent(
            "target/" + BuildDirectories.BUILD_SOURCES_MAIN.getBuildDirectoryName() + "/It0018.cs" );
        verifier.assertFilePresent(
            "target/" + BuildDirectories.BUILD_SOURCES_MAIN.getBuildDirectoryName() + "/It0018Gen.cs" );
        verifier.assertFilePresent(
            "target/" + BuildDirectories.TEST_BUILD_SOURCES_MAIN.getBuildDirectoryName() + "/It0018.cs" );
        verifier.assertFilePresent(
            "target/" + BuildDirectories.TEST_BUILD_SOURCES_MAIN.getBuildDirectoryName() + "/It0018Gen.cs" );
        verifier.verifyErrorFreeLog();
        verifier.resetStreams();

        // Delete the generated file
        assertTrue( "Unable to delete generated source file", generatedCSSourceFile.delete() );
        assertTrue( "Unable to delete generated test file", generatedCSTargetFile.delete() );

        verifier.executeGoal( "install" );

        // Verify that the deleted file is purged from the staging compilation directory
        verifier.assertFileNotPresent(
            "target/" + BuildDirectories.BUILD_SOURCES_MAIN.getBuildDirectoryName() + "/It0018Gen.cs" );
        verifier.assertFileNotPresent(
            "target/" + BuildDirectories.TEST_BUILD_SOURCES_GENERATED.getBuildDirectoryName() + "/It0018Gen.cs" );
        verifier.verifyErrorFreeLog();
        verifier.resetStreams();
    }
}
TOP

Related Classes of org.apache.maven.dotnet.integrationtests.MavenITmng0018CSharpSynchronizeTargetWithSource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.