Resource.Type type = Resource.Type.RootService;
AmbariManagementController managementController = createMock(AmbariManagementController.class);
Set<RootServiceResponse> allResponse = new HashSet<RootServiceResponse>();
allResponse.add(new RootServiceResponse("service1"));
allResponse.add(new RootServiceResponse("service2"));
allResponse.add(new RootServiceResponse("service3"));
Set<RootServiceResponse> nameResponse = new HashSet<RootServiceResponse>();
nameResponse.add(new RootServiceResponse("service4"));
// set expectations
expect(managementController.getRootServices(EasyMock.<Set<RootServiceRequest>>anyObject())).andReturn(allResponse).once();
expect(managementController.getRootServices(EasyMock.<Set<RootServiceRequest>>anyObject())).andReturn(nameResponse).once();
// replay
replay(managementController);
ResourceProvider provider = AbstractControllerResourceProvider.getResourceProvider(
type,
PropertyHelper.getPropertyIds(type),
PropertyHelper.getKeyPropertyIds(type),
managementController);
Set<String> propertyIds = new HashSet<String>();
propertyIds.add(RootServiceResourceProvider.SERVICE_NAME_PROPERTY_ID);
// create the request
Request request = PropertyHelper.getReadRequest(propertyIds);
// get all ... no predicate
Set<Resource> resources = provider.getResources(request, null);
Assert.assertEquals(allResponse.size(), resources.size());
for (Resource resource : resources) {
String serviceName = (String) resource.getPropertyValue(RootServiceResourceProvider.SERVICE_NAME_PROPERTY_ID);
Assert.assertTrue(allResponse.contains(new RootServiceResponse(serviceName)));
}
// get service named service4
Predicate predicate =
new PredicateBuilder().property(RootServiceResourceProvider.SERVICE_NAME_PROPERTY_ID).