@Test @SuppressWarnings("unchecked") public void testTypeMetadataQueryEqualsAndHashCode() { Path path1 = mock(Path.class); Path path2 = mock(Path.class); Set<String> set1 = mock(Set.class); Set<String> set2 = mock(Set.class); TestCaseBuilder.newTestCase() .addTrueCase(new TypeMetadataQuery(null, null), new TypeMetadataQuery(null, null)) .addTrueCase(new TypeMetadataQuery(path1, null), new TypeMetadataQuery(path1, null)) .addTrueCase(new TypeMetadataQuery(path1, set1), new TypeMetadataQuery(path1, set1)) .addFalseCase(new TypeMetadataQuery(path1, null), new TypeMetadataQuery(null, null)) .addFalseCase(new TypeMetadataQuery(path1, null), new TypeMetadataQuery(path2, null)) .addFalseCase(new TypeMetadataQuery(path1, set1), new TypeMetadataQuery(path1, null)) .addFalseCase(new TypeMetadataQuery(path1, set1), new TypeMetadataQuery(path1, set2)) .addFalseCase(new TypeMetadataQuery(path1, set1), new TypeMetadataQuery(path2, set2)) .test(); }
@Test public void testFindMetadata() { Set<String> types = new HashSet<>(); types.add(Bean1.class.getName()); types.add(Bean2.class.getName()); types.add("non.existing.class.Bean"); TypeMetadataQuery query = new TypeMetadataQuery(path, types); TypeMetadataQueryResult result = service.findMetadata(query); assertTrue(result.getMissingTypes().contains("non.existing.class.Bean")); TypeMetadata bean1Metadata = result.getTypeMetadatas().stream().filter(typeMetadata -> typeMetadata.getType().equals(Bean1.class.getName())).findFirst().orElse(null); TypeMetadata bean2Metadata = result.getTypeMetadatas().stream().filter(typeMetadata -> typeMetadata.getType().equals(Bean2.class.getName())).findFirst().orElse(null); assertNotNull(bean1Metadata); assertNotNull(bean2Metadata); assertHasField(bean1Metadata, "fieldBean1_1", String.class.getName(), "getFieldBean1_1", "setFieldBean1_1"); assertHasField(bean1Metadata, "fieldBean1_2", "int", "getFieldBean1_2", null); assertHasField(bean1Metadata, "fieldBean1_3", "boolean", "isFieldBean1_3", "setFieldBean1_3"); assertHasField(bean1Metadata, "fieldBean1_4", Integer.class.getName(), null, "setFieldBean1_4"); assertHasField(bean2Metadata, "fieldBean1_1", String.class.getName(), "getFieldBean1_1", "setFieldBean1_1"); assertHasField(bean2Metadata, "fieldBean1_2", "int", "getFieldBean1_2", null); assertHasField(bean2Metadata, "fieldBean1_3", "boolean", "isFieldBean1_3", "setFieldBean1_3"); assertHasField(bean2Metadata, "fieldBean1_4", Integer.class.getName(), null, "setFieldBean1_4"); assertHasField(bean2Metadata, "fieldBean2_1", String.class.getName(), "getFieldBean2_1", "setFieldBean2_1"); assertHasField(bean2Metadata, "fieldBean2_2", Object.class.getName(), "getFieldBean2_2", "setFieldBean2_2"); }
public void init(ClientSession session) { Diagram diagram = session.getCanvasHandler().getDiagram(); String canvasRootUUID = diagram.getMetadata().getCanvasRootUUID(); @SuppressWarnings("unchecked") Node<?, ? extends Edge> selectedNode = getSourceNode(diagram, getSelectedElementUUID(session)); if (selectedNode != null) { Map<String, VariableMetadata> collectedVariables = new HashMap<>(); Set<String> collectedTypes = new HashSet<>(); Node<?, ? extends Edge> parentNode = getParent(selectedNode).asNode(); String parentVariables; while (parentNode != null) { parentVariables = getVariables(parentNode); if (!isEmpty(parentVariables)) { addVariables(parentVariables, collectedVariables, collectedTypes); } if (parentNode.getUUID().equals(canvasRootUUID)) { parentNode = null; } else { parentNode = getParent(parentNode).asNode(); } } Path path = session.getCanvasHandler().getDiagram().getMetadata().getPath(); TypeMetadataQuery query = new TypeMetadataQuery(path, collectedTypes); service.call(result -> initVariables(collectedVariables.values(), ((TypeMetadataQueryResult) result))).findMetadata(query); } }