### Question:
ProviderTypeServiceImpl implements ProviderTypeService { @Override public Collection<ProviderType> getAvailableProviderTypes() { List<ProviderType> result = new ArrayList<>(); List<org.guvnor.ala.runtime.providers.ProviderType> providers = runtimeProvisioningService.getProviderTypes(0, 100, PROVIDER_TYPE_NAME_SORT, true); if (providers != null) { providers.forEach(providerType -> result.add(new ProviderType(new ProviderTypeKey(providerType.getProviderTypeName(), providerType.getVersion()), providerType.getProviderTypeName())) ); } return result; } ProviderTypeServiceImpl(); @Inject  ProviderTypeServiceImpl(final RuntimeProvisioningServiceBackend runtimeProvisioningService,
                                   final ProvisioningPreferences provisioningPreferences,
                                   final PreferenceScopeFactory scopeFactory); @Override Collection<ProviderType> getAvailableProviderTypes(); @Override ProviderType getProviderType(final ProviderTypeKey providerTypeKey); @Override Collection<ProviderType> getEnabledProviderTypes(); @Override void enableProviderTypes(final Collection<ProviderType> providerTypes); @Override void disableProviderType(final ProviderType providerType); @Override Map<ProviderType, ProviderTypeStatus> getProviderTypesStatus();  }### Answer:
@Test public void testGetAvailableProviders() { Collection<ProviderType> result = service.getAvailableProviderTypes(); assertEquals(PROVIDER_TYPES_COUNT, result.size()); int i = 0; for (ProviderType providerType : result) { assertNotNull(providerType.getKey()); assertEquals(providerTypesSpi.get(i).getProviderTypeName(), providerType.getKey().getId()); assertEquals(providerTypesSpi.get(i).getVersion(), providerType.getKey().getVersion()); i++; } }