package org.jsondoc.core.util; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.HashSet; import java.util.Set; import org.jsondoc.core.pojo.ApiDoc; import org.jsondoc.core.pojo.ApiMethodDoc; import org.jsondoc.core.pojo.ApiVerb; import org.jsondoc.core.pojo.JSONDoc; import org.jsondoc.core.pojo.JSONDoc.MethodDisplay; import org.jsondoc.core.scanner.DefaultJSONDocScanner; import org.jsondoc.core.scanner.JSONDocScanner; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; import com.google.common.collect.Sets; public class DefaultJSONDocScannerTest { private String version = "1.0"; private String basePath = "http://localhost:8080/api"; private ObjectMapper objectMapper = new ObjectMapper(); private static Logger log = LoggerFactory.getLogger(DefaultJSONDocScannerTest.class); @Test public void getJSONDoc() throws IOException { JSONDocScanner jsondocScanner = new DefaultJSONDocScanner(); JSONDoc jsondoc = jsondocScanner.getJSONDoc(version, basePath, Lists.newArrayList("org.jsondoc.core.util"), true, MethodDisplay.URI); assertEquals(1, jsondoc.getApis().size()); int countApis = 0; for (String string : jsondoc.getApis().keySet()) { countApis += jsondoc.getApis().get(string).size(); } assertEquals(4, countApis); assertEquals(3, jsondoc.getObjects().size()); int countFlows = 0; for (String string : jsondoc.getFlows().keySet()) { countFlows += jsondoc.getFlows().get(string).size(); } assertEquals(2, countFlows); int countObjects = 0; for (String string : jsondoc.getObjects().keySet()) { countObjects += jsondoc.getObjects().get(string).size(); } assertEquals(10, countObjects); Set<ApiVerb> apiVerbs = getAllTestedApiVerbs(jsondoc); assertEquals(ApiVerb.values().length, apiVerbs.size()); log.debug(objectMapper.writeValueAsString(jsondoc)); } private Set<ApiVerb> getAllTestedApiVerbs(JSONDoc jsondoc) { Set<ApiVerb> apiVerbs = new HashSet<ApiVerb>(); for (String string : jsondoc.getObjects().keySet()) { Set<ApiDoc> apiDocs = jsondoc.getApis().get(string); if (apiDocs != null) { for (ApiDoc doc : apiDocs) { for (ApiMethodDoc apiMethodDoc : doc.getMethods()) { apiVerbs.addAll(Sets.newHashSet(apiMethodDoc.getVerb())); } } } } return apiVerbs; } }