@Test  
    public void testSourceRequirements() {  
        // check data access class  
        try {  
            Class<?> clazz = Class.forName("suncertify.db.Data");  
            Assert.assertTrue("DBMain is not assignable from " + clazz,    
              DBMain.class.isAssignableFrom(clazz));    
        } catch (ClassNotFoundException e1) {  
            Assert.fail("data access class not found");  
        }  
        // check the unimplemented exceptions  
        final Class<?>[] exceptionClasses = { RecordNotFoundException.class,  
                DuplicateKeyException.class };  
        for (Class<?> exceptionClass : exceptionClasses) {  
            // a zero argument constructor  
            try {  
                exceptionClass.getConstructor((Class[]) null);  
            } catch (SecurityException e) {  
                Assert.fail("security violation");  
            } catch (NoSuchMethodException e) {  
                Assert.fail("the zero argument constructor not found");  
            }  
            // a constructor with String argument  
            try {  
                exceptionClass.getConstructor(String.class);  
            } catch (SecurityException e) {  
                Assert.fail("security violation");  
            } catch (NoSuchMethodException e) {  
                Assert.fail("constructor not found");  
            }  
        }  
    }