/** * Copyright (c) 2015 Lemur Consulting Ltd. * <p> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package uk.co.flax.biosolr.ontology.core.ols.graph; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test; import uk.co.flax.biosolr.ontology.core.ols.OLSHttpClientTest; import java.io.IOException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import static org.junit.Assert.*; /** * Unit tests for the graph class. * * <p>Created by Matt Pearce on 27/10/15.</p> * @author Matt Pearce */ public class GraphTest { static final String GRAPH_FILE = "ols/graph.json"; @Test public void deserialize_fromFile() throws Exception { Graph graph = readGraphFromFile(GRAPH_FILE); assertNotNull(graph); assertNotNull(graph.getNodes()); assertFalse(graph.getNodes().isEmpty()); assertNotNull(graph.getEdges()); assertFalse(graph.getEdges().isEmpty()); } @Test public void getEdgesBySource_nullEdges() throws Exception { Graph graph = new Graph(null, null); Collection<Edge> edges = graph.getEdgesBySource("http://www.ebi.ac.uk/efo/EFO_0005580", true); assertNotNull(edges); assertEquals(0, edges.size()); } @Test public void getEdgesBySource_badSource() throws Exception { Graph graph = new Graph(null, Collections.emptyList()); Collection<Edge> edges = graph.getEdgesBySource("http://www.ebi.ac.uk/efo/EFO_0005580", true); assertNotNull(edges); assertEquals(0, edges.size()); } @Test public void getEdgesBySource_includeChildren() throws Exception { Graph graph = readGraphFromFile(GRAPH_FILE); Collection<Edge> edges = graph.getEdgesBySource("http://www.ebi.ac.uk/efo/EFO_0005580", true); assertNotNull(edges); assertEquals(4, edges.size()); } @Test public void getEdgesBySource_ignoreChildren() throws Exception { Graph graph = readGraphFromFile(GRAPH_FILE); List<Edge> edges = new ArrayList<>(graph.getEdgesBySource("http://www.ebi.ac.uk/efo/EFO_0005580", false)); assertNotNull(edges); assertEquals(1, edges.size()); assertEquals("has_disease_location", edges.get(0).getLabel()); } private Graph readGraphFromFile(String filePath) throws URISyntaxException, IOException { ObjectMapper mapper = new ObjectMapper(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); return mapper.readValue( OLSHttpClientTest.getFile(filePath), Graph.class); } }