This commit is contained in:
jamesagnew 2019-10-10 07:16:18 -04:00
parent e656863a73
commit 92c6b88964
2 changed files with 43 additions and 1 deletions

View File

@ -53,7 +53,7 @@ abstract class BaseOutcomeReturningMethodBinding extends BaseMethodBinding<Metho
if (!theMethod.getReturnType().equals(MethodOutcome.class)) {
if (!allowVoidReturnType()) {
throw new ConfigurationException("Method " + theMethod.getName() + " in type " + theMethod.getDeclaringClass().getCanonicalName() + " is a @" + theMethodAnnotation.getSimpleName() + " method but it does not return " + MethodOutcome.class);
throw new ConfigurationException("Method " + theMethod.getName() + " in type " + theMethod.getDeclaringClass().getName() + " is a @" + theMethodAnnotation.getSimpleName() + " method but it does not return " + MethodOutcome.class);
} else if (theMethod.getReturnType() == void.class) {
myReturnVoid = true;
}

View File

@ -0,0 +1,42 @@
package ca.uhn.fhir.rest.server.method;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.rest.annotation.Create;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
import java.lang.reflect.Method;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.*;
@RunWith(MockitoJUnitRunner.class)
public class CreateMethodBindingTest {
private FhirContext myCtx = FhirContext.forR4();
@Test
public void testInvalidMethod() throws NoSuchMethodException {
class MyClass {
@Create
public void create() {
// nothing
}
}
Method method = MyClass.class.getMethod("create");
try {
new CreateMethodBinding(method, myCtx, new MyClass());
fail();
} catch (ConfigurationException e) {
assertThat(e.getMessage(), containsString("is a @Create method but it does not return class ca.uhn.fhir.rest.api.MethodOutcome"));
}
}
}