@Override public <T> Result<T> lookup(Template<T> template) { if (template.getType() == Node.class) { return Lookup.EMPTY.lookup(template); } return delegate.lookup(template); }
@Test public void testListTemplates() throws Exception { Set<Template> response = client.getTemplateClient().listTemplates(); assert null != response; long templateCount = response.size(); assertTrue(templateCount >= 0); for (Template template : response) { Template newDetails = Iterables.getOnlyElement( client .getTemplateClient() .listTemplates(zoneId(template.getZoneId()).id(template.getId()))); Logger.CONSOLE.info("Checking template: " + template); assertEquals(template, newDetails); assertEquals( template, client.getTemplateClient().getTemplateInZone(template.getId(), template.getZoneId())); assert template.getId() > 0 : template; assert template.getName() != null : template; assert template.getDisplayText() != null : template; assert template.getCreated() != null : template; assert template.getFormat() != null && template.getFormat() != Template.Format.UNRECOGNIZED : template; assert template.getOSType() != null : template; assert template.getOSTypeId() > 0 : template; assert template.getAccount() != null : template; assert template.getZone() != null : template; assert template.getZoneId() > 0 : template; assert (template.getStatus() == null || template.getStatus().equals("Download Complete")) : template; assert template.getType() != null && template.getType() != Template.Type.UNRECOGNIZED : template; assert template.getHypervisor() != null : template; assert template.getDomain() != null : template; assert template.getDomainId() > 0 : template; assert template.getSize() > 0 : template; } }
/** * A method that defines matching between Item and Template. * * @param item the item to match * @return true if item matches the template requirements, false if not */ private static boolean matches(Template t, AbstractLookup.Pair item) { if (!AbstractLookup.matches(t, item)) { return false; } Class type = t.getType(); if (type != null && !type.isAssignableFrom(item.getType())) { return false; } return true; }