@Test
public void testGetIsoRecords() throws OWSExceptionReport, XMLStreamException, IOException {

    String demoCSWURL = TestProperties.getProperty( "demo_csw_url" );
    Assume.assumeNotNull( demoCSWURL );
    URL serviceUrl = new URL( demoCSWURL );
    CSWClient client = new CSWClient( serviceUrl );
    Assert.assertNotNull( client );
    
    Operator titleFilter1 = createPropertyLikeFilter( APISO_PREFIX, "Title", APISO, "%e%" );       
    Operator titleFilter2 = createPropertyLikeFilter( APISO_PREFIX, "Title", APISO, "%a%" );       
    Operator titleFilter = new Or(titleFilter1, titleFilter2);
    
    int startPosition = 1;
    int maxRecords = 20;
    Filter constraint = new OperatorFilter(titleFilter);        
    
    GetRecordsResponse recordsResponse = client.getIsoRecords(startPosition, maxRecords, constraint);
    Assert.assertNotNull( recordsResponse );        
    Assert.assertTrue( maxRecords >= recordsResponse.getNumberOfRecordsReturned() );
    Assert.assertTrue( recordsResponse.getNumberOfRecordsReturned() >= 1 );
    Assert.assertTrue( recordsResponse.getNumberOfRecordsMatched() >= 1 );
    
    int recordsCounter = 0;
    
    Iterator<MetadataRecord> iter = recordsResponse.getRecords();
    while(iter.hasNext()) {
        MetadataRecord record = iter.next();
        Assert.assertNotNull(record);
        
        System.out.println(String.format("%s * %s * %s * %s * %s",
                Arrays.toString(record.getTitle()), 
                record.getIdentifier(), record.getLanguage(), record.getModified(), record.getType()));
        Assert.assertNotNull(record.getTitle()[0]);
        Assert.assertNotNull(record.getAbstract()[0]);
        Assert.assertNotNull(record.getIdentifier());
        Assert.assertNotNull(record.getLanguage());
        Assert.assertNotNull(record.getModified());
        Assert.assertNotNull(record.getType());
        
        recordsCounter++;
    }
    
    Assert.assertTrue(recordsCounter > 0);
}