package org.jsondoc.springmvc.scanner; import java.util.Map; import org.jsondoc.core.pojo.ApiDoc; import org.jsondoc.core.pojo.ApiMethodDoc; import org.jsondoc.core.pojo.JSONDoc.MethodDisplay; import org.jsondoc.core.scanner.JSONDocScanner; import org.junit.Assert; import org.junit.Test; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.google.common.collect.Sets; public class SpringResponseBuilderTest { private JSONDocScanner jsondocScanner = new Spring3JSONDocScanner(); @Controller @RequestMapping public class SpringController { @RequestMapping(value = "/response-one") public String string() { return ""; } @RequestMapping(value = "/response-two") public ResponseEntity<String> responseEntityString() { return ResponseEntity.ok(""); } @RequestMapping(value = "/response-three") public ResponseEntity<Map<String,Integer>> responseEntityMap() { return ResponseEntity.ok(null); } } @Test public void testApiVerb() { ApiDoc apiDoc = jsondocScanner.getApiDocs(Sets.<Class<?>> newHashSet(SpringController.class), MethodDisplay.URI).iterator().next(); Assert.assertEquals("SpringController", apiDoc.getName()); Assert.assertEquals(3, apiDoc.getMethods().size()); for (ApiMethodDoc apiMethodDoc : apiDoc.getMethods()) { if (apiMethodDoc.getPath().contains("/response-one")) { Assert.assertEquals("string", apiMethodDoc.getResponse().getJsondocType().getOneLineText()); } if (apiMethodDoc.getPath().contains("/response-two")) { Assert.assertEquals("string", apiMethodDoc.getResponse().getJsondocType().getOneLineText()); } if (apiMethodDoc.getPath().contains("/response-three")) { Assert.assertEquals("map[string, integer]", apiMethodDoc.getResponse().getJsondocType().getOneLineText()); } } } }