@Test
public void testProperties()
{

    Map<String, String> properties = new LinkedHashMap<>();
    properties.put( "foo", "bar" );
    properties.put( "baz", "" );
    Artifact artifact = new DefaultArtifact( "dummy", "dummy" );
    ArtifactContext context = new ArtifactContext( artifact, properties );
    StringExpression fooProperty = new Property( "foo" );
    assertEquals( "bar", fooProperty.getValue( context ) );
    StringExpression bazProperty = new Property( "baz" );
    assertEquals( "", bazProperty.getValue( context ) );
    StringExpression xyzzyProperty = new Property( "xyzzy" );
    assertEquals( null, xyzzyProperty.getValue( context ) );
    BooleanExpression fooDefined = new Defined( "foo" );
    assertTrue( fooDefined.getValue( context ) );
    BooleanExpression bazDefined = new Defined( "baz" );
    assertTrue( bazDefined.getValue( context ) );
    BooleanExpression xyzzyDefined = new Defined( "xyzzy" );
    assertFalse( xyzzyDefined.getValue( context ) );
}