@Provider
public static class ProviderAndDynamicResource extends AbstractDynamicResource {
}
public void testAppValidator() {
ApplicationValidator applicationValidator = new ApplicationValidator();
// object is neither valid resource nor provider
assertFalse(applicationValidator.isValidResource(Object.class));
assertFalse(applicationValidator.isValidProvider(Object.class));
// same class cannot be both static resource and provider
assertFalse(applicationValidator.isValidResource(StaticResourceAndProvider.class));
assertFalse(applicationValidator.isValidProvider(StaticResourceAndProvider.class));
// same class cannot be both dynamic resource and provider
assertFalse(applicationValidator.isValidResource(ProviderAndDynamicResource.class));
assertFalse(applicationValidator.isValidProvider(ProviderAndDynamicResource.class));
// same class cannot be both static and dynamic resource
assertFalse(applicationValidator.isValidResource(StaticAndDynamicResource.class));
assertFalse(applicationValidator.isValidProvider(StaticAndDynamicResource.class));
// FileProvider is not a resource
assertFalse(applicationValidator.isValidResource(FileProvider.class));
// FileProvider is valid provider
assertTrue(applicationValidator.isValidProvider(FileProvider.class));
// however, it is valid only once
assertFalse(applicationValidator.isValidProvider(FileProvider.class));
// Resource is not a provider
assertFalse(applicationValidator.isValidProvider(Resource.class));
// Resource is valid resource
assertTrue(applicationValidator.isValidResource(Resource.class));
// however, it is valid only once
assertFalse(applicationValidator.isValidResource(Resource.class));
// AbstractDynamicResource is not a provider
assertFalse(applicationValidator.isValidProvider(AbstractDynamicResource.class));
// AbstractDynamicResource is valid resource
assertTrue(applicationValidator.isValidResource(AbstractDynamicResource.class));
// it can be validated as many time as needed
assertTrue(applicationValidator.isValidResource(AbstractDynamicResource.class));
assertTrue(applicationValidator.isValidResource(AbstractDynamicResource.class));
assertTrue(applicationValidator.isValidResource(AbstractDynamicResource.class));
}