blob: e16505a85d4e08c8a43714be71569c4b3f5a2a06 [file] [log] [blame]
package org.apache.maven.plugin.failsafe;
/*
* 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.
*/
import org.apache.maven.plugin.failsafe.util.FailsafeSummaryXmlUtils;
import org.apache.maven.surefire.api.suite.RunResult;
import org.junit.Test;
import java.io.File;
import static org.fest.assertions.Assertions.assertThat;
/**
* @author <a href="mailto:tibordigana@apache.org">Tibor Digana (tibor17)</a>
* @since 2.20
*/
@SuppressWarnings( "checkstyle:magicnumber" )
public class RunResultTest
{
@Test
public void testAggregatedValues()
{
RunResult simple = getSimpleAggregate();
assertThat( simple.getCompletedCount() )
.isEqualTo( 20 );
assertThat( simple.getErrors() )
.isEqualTo( 3 );
assertThat( simple.getFailures() )
.isEqualTo( 7 );
assertThat( simple.getSkipped() )
.isEqualTo( 4 );
assertThat( simple.getFlakes() )
.isEqualTo( 2 );
}
@Test
public void testSerialization()
throws Exception
{
writeReadCheck( getSimpleAggregate() );
}
@Test
public void testFailures()
throws Exception
{
writeReadCheck( new RunResult( 0, 1, 2, 3, "stacktraceHere", false ) );
}
@Test
public void testSkipped()
throws Exception
{
writeReadCheck( new RunResult( 3, 2, 1, 0, null, true ) );
}
@Test
public void testAppendSerialization()
throws Exception
{
RunResult simpleAggregate = getSimpleAggregate();
RunResult additional = new RunResult( 2, 1, 2, 2, "msg " + ( (char) 0x0E01 ), true );
File summary = File.createTempFile( "failsafe", "test" );
FailsafeSummaryXmlUtils.writeSummary( simpleAggregate, summary, false );
FailsafeSummaryXmlUtils.writeSummary( additional, summary, true );
RunResult actual = FailsafeSummaryXmlUtils.toRunResult( summary );
//noinspection ResultOfMethodCallIgnored
summary.delete();
RunResult expected = simpleAggregate.aggregate( additional );
assertThat( expected.getCompletedCount() )
.isEqualTo( 22 );
assertThat( expected.getErrors() )
.isEqualTo( 4 );
assertThat( expected.getFailures() )
.isEqualTo( 9 );
assertThat( expected.getSkipped() )
.isEqualTo( 6 );
assertThat( expected.getFlakes() )
.isEqualTo( 2 );
assertThat( expected.getFailure() )
.isEqualTo( "msg " + ( (char) 0x0E01 ) );
assertThat( expected.isTimeout() )
.isTrue();
assertThat( actual )
.isEqualTo( expected );
}
private void writeReadCheck( RunResult expected )
throws Exception
{
File tmp = File.createTempFile( "test", "xml" );
FailsafeSummaryXmlUtils.fromRunResultToFile( expected, tmp );
RunResult actual = FailsafeSummaryXmlUtils.toRunResult( tmp );
//noinspection ResultOfMethodCallIgnored
tmp.delete();
assertThat( actual )
.isEqualTo( expected );
}
private RunResult getSimpleAggregate()
{
RunResult resultOne = new RunResult( 10, 1, 3, 2, 1 );
RunResult resultTwo = new RunResult( 10, 2, 4, 2, 1 );
return resultOne.aggregate( resultTwo );
}
}