/**
* Test os.
*/
public void testOS()
{
Log log = new SystemStreamLog();
RequireOS rule = new RequireOS();
rule.displayOSInfo( log, true );
Iterator iter = Os.getValidFamilies().iterator();
String validFamily = null;
String invalidFamily = null;
while ( iter.hasNext() )
{
String fam = (String) iter.next();
if ( !Os.isFamily( fam ) )
{
invalidFamily = fam;
break;
}
}
validFamily = Os.OS_FAMILY;
log.info( "Testing Mojo Using Valid Family: " + validFamily + " Invalid Family: " + invalidFamily );
rule.setFamily( validFamily );
assertTrue( rule.isAllowed() );
rule.setFamily( invalidFamily );
assertFalse( rule.isAllowed() );
rule.setFamily( "!" + invalidFamily );
assertTrue( rule.isAllowed() );
rule.setFamily( "junk" );
try
{
rule.execute( EnforcerTestUtils.getHelper() );
fail( "Expected MojoExecution Exception becuase of invalid family type" );
}
catch ( EnforcerRuleException e )
{
log.info( "Caught Expected Exception:" + e.getLocalizedMessage() );
}
rule.setFamily( null );
rule.setArch( Os.OS_ARCH );
assertTrue( rule.isAllowed() );