public Map<String, Object> toMap() { Map<String, Object> result = new HashMap<>(); result.put("clazz", clazz.getCanonicalName()); result.put("parentId", parentId == null ? null : parentId.toString()); result.put("condition", condition == null ? null : condition.toMap()); result.put("preOrders", preOrders); result.put("postOrders", postOrders); result.put("limit", limit); return result; } }
@Override public String toString() { if (r == null) { return "empty id"; } StringBuilder sb = new StringBuilder(); if (parentId != null) { sb.append(parentId.toString()); } EndpointFeatures<?> clazz = r.getFeatures().getByClazz(this.clazz); sb.append(StringUtils.isEmpty(clazz.getEndpointPath()) ? "/" + clazz.getEndpointKind() : clazz.getEndpointPath()); sb.append("/"); sb.append(id != null ? id : name); return sb.toString(); }
@Test public void testCacheIds() { CachedEntity foo = yawp.save(new CachedEntity("foo")); Map<String, Object> cacheIds = CachedEntityHook.caches.get(QueryType.IDS); assertThat(cacheIds.size(), is(equalTo(0))); List<IdRef<CachedEntity>> list = yawp(CachedEntity.class).ids(); assertThat(cacheIds.size(), is(equalTo(1))); assertThat(list.get(0).toString(), is(equalTo(foo.getId().toString()))); List<IdRef<CachedEntity>> list2 = yawp(CachedEntity.class).ids(); assertThat(cacheIds.size(), is(equalTo(1))); assertSame(list, list2); // from cache } }
@Test public void testGetString() { assertEquals("/parents/1", IdRef.parse(yawp, GET, "/parents/1").toString()); assertEquals("/parents/1/children/2", IdRef.parse(yawp, GET, "/parents/1/children/2").toString()); assertEquals("/parents/1/children/2/grandchildren/3", IdRef.parse(yawp, GET, "/parents/1/children/2/grandchildren/3").toString()); }
@Test public void testToString() { assertEquals("/parents/a", IdRef.parse(yawp, GET, "/parents/a").toString()); assertEquals("/parents/a/children/b", IdRef.parse(yawp, GET, "/parents/a/children/b").toString()); assertEquals("/parents/a/children/b/grandchildren/c", IdRef.parse(yawp, GET, "/parents/a/children/b/grandchildren/c").toString()); }
@Override public void afterQuery(QueryBuilder<HookedObject> q) { String msg = q.getExecutedQueryType() == QueryType.FETCH ? ((HookedObject) q.getExecutedResponse()).getId().toString() : String.valueOf(((List<?>) q.getExecutedResponse()).size()); HookTest.AfterQueryTest.msgs.add("type: " + q.getExecutedQueryType() + " | obj: " + msg); }
@Test public void testQueryWithIdAsStringIn() { Parent parent1 = new Parent("xpto1"); yawp.save(parent1); Parent parent2 = new Parent("xpto2"); yawp.save(parent2); final List<String> idAsStringList = Arrays.asList(parent1.getId().toString(), parent2.getId().toString()); List<Parent> retrievedParents = yawp(Parent.class).where("id", "IN", idAsStringList).list(); List<String> nomes = Arrays.asList(retrievedParents.get(0).getName(), retrievedParents.get(1).getName()); Collections.sort(nomes); assertEquals(2, nomes.size()); assertEquals("xpto1", nomes.get(0)); assertEquals("xpto2", nomes.get(1)); }
@Test public void testWithIdAsStringIn() { BasicObject myObj1 = new BasicObject("xpto1"); yawp.save(myObj1); BasicObject myObj2 = new BasicObject("xpto2"); yawp.save(myObj2); List<BasicObject> objects = yawp(BasicObject.class) .where("id", "in", Arrays.asList(myObj1.getId().toString(), myObj2.getId().toString())).order("stringValue").list(); assertEquals(2, objects.size()); assertEquals("xpto1", objects.get(0).getStringValue()); assertEquals("xpto2", objects.get(1).getStringValue()); }
@Test public void testWithIdAsString() { BasicObject myObj = new BasicObject("xpto"); yawp.save(myObj); BasicObject fetch = yawp(BasicObject.class).where("id", "=", myObj.getId().toString()).only(); assertEquals("xpto", fetch.getStringValue()); }
@Test public void testQueryWithIdAsString() { Parent parent = new Parent("xpto"); yawp.save(parent); Parent retrievedParent1 = yawp(Parent.class).where("id", "=", parent.getId().toString()).only(); assertEquals("xpto", retrievedParent1.getName()); }
@Test public void testForcedResponseIdsViaOnlyId() { BasicObject xpto = yawp.save(new BasicObject("xpto")); BasicObject fake = new BasicObject("fake"); fake.setId(IdRef.create(yawp, BasicObject.class, "oni")); IdRef<BasicObject> nonForcedId = yawp(BasicObject.class).onlyId(); assertEquals(xpto.getId(), nonForcedId); IdRef<BasicObject> forcedId = yawp(BasicObject.class).forceResult(QueryType.IDS, Arrays.asList(fake.getId())).onlyId(); assertEquals("/basic_objects/oni", forcedId.toString()); }