@Test public void handle_request() throws Exception { MetricWs metricWs = new MetricWs(); metricWs.define(context); assertThat(metricWs.showCalled).isFalse(); assertThat(metricWs.createCalled).isFalse(); context.controller("api/metric").action("show").handler().handle(mock(Request.class), mock(Response.class)); assertThat(metricWs.showCalled).isTrue(); assertThat(metricWs.createCalled).isFalse(); context.controller("api/metric").action("create").handler().handle(mock(Request.class), mock(Response.class)); assertThat(metricWs.createCalled).isTrue(); }
@CheckForNull public WebService.Controller controller(String key) { return context.controller(key); }
@Test public void define() { CeWsAction wsAction = new SubmitAction(mock(ReportSubmitter.class), mock(DefaultOrganizationProvider.class)); CeWs ws = new CeWs(wsAction); WebService.Context context = mock(WebService.Context.class, Mockito.RETURNS_DEEP_STUBS); ws.define(context); assertThat(context.controller("api/ce")).isNotNull(); } }
@Test public void define() { RestartAction action1 = new RestartAction(mock(UserSession.class), mock(ProcessCommandWrapper.class), mock(RestartFlagHolder.class), mock(WebServer.class)); InfoAction action2 = new InfoAction(new AnonymousMockUserSession(), mock(SystemInfoWriter.class)); SystemWs ws = new SystemWs(action1, action2); WebService.Context context = new WebService.Context(); ws.define(context); assertThat(context.controllers()).hasSize(1); assertThat(context.controller("api/system").actions()).hasSize(2); assertThat(context.controller("api/system").action("info")).isNotNull(); } }
@Test public void param_with_empty_possible_values() { ((WebService) context -> { NewController newController = context.createController("api/rule"); NewAction create = newDefaultAction(newController, "create"); create.createParam("status") .setPossibleValues(Collections.emptyList()); newController.done(); }).define(context); WebService.Action action = context.controller("api/rule").action("create"); // no possible values -> return null but not empty assertThat(action.param("status").possibleValues()).isNull(); }
private void defineParameterTestAction(Consumer<WebService.NewParam> newParam, String parameter) { String controllerPath = "my_controller"; String actionPath = "my_action"; WebService.Context context = new WebService.Context(); WebService.NewController controller = context.createController(controllerPath); WebService.NewAction action = controller .createAction(actionPath) .setHandler(mock(RequestHandler.class)); WebService.NewParam param = action.createParam(parameter); newParam.accept(param); controller.done(); underTest.setAction(context.controller(controllerPath).action(actionPath)); }
public WsActionTester(WsAction wsAction) { WebService.Context context = new WebService.Context(); WebService.NewController newController = context.createController(CONTROLLER_KEY); wsAction.define(newController); newController.done(); action = Iterables.get(context.controller(CONTROLLER_KEY).actions(), 0); }
@Test public void param_with_maximum_length() { ((WebService) context -> { NewController newController = context.createController("api/custom_measures"); NewAction create = newDefaultAction(newController, "create"); create.createParam("string_value") .setMaximumLength(24); newController.done(); }).define(context); WebService.Action action = context.controller("api/custom_measures").action("create"); assertThat(action.param("string_value").maximumLength()).isEqualTo(24); }
@Test public void test_definition() { WebhooksWsAction action = newFakeAction(); WebhooksWs underTest = new WebhooksWs(action); WebService.Context context = new WebService.Context(); underTest.define(context); WebService.Controller controller = context.controller("api/webhooks"); assertThat(controller).isNotNull(); assertThat(controller.description()).isNotEmpty(); assertThat(controller.since()).isEqualTo("6.2"); }
@Test public void param_with_minimum_length() { ((WebService) context -> { NewController newController = context.createController("api/custom_measures"); NewAction create = newDefaultAction(newController, "create"); create.createParam("string_value") .setMinimumLength(3); newController.done(); }).define(context); WebService.Action action = context.controller("api/custom_measures").action("create"); assertThat(action.param("string_value").minimumLength()).isEqualTo(3); }
@Test public void test_definition() { ProjectBadgesWsAction action = createFakeAction(); WebService.Context context = new WebService.Context(); ProjectBadgesWs underTest = new ProjectBadgesWs(Collections.singletonList(action)); underTest.define(context); WebService.Controller controller = context.controller("api/project_badges"); assertThat(controller).isNotNull(); assertThat(controller.description()).isNotEmpty(); assertThat(controller.since()).isEqualTo("7.1"); }
@Before public void before() { WebService.Context context = new WebService.Context(); new FakeWs().define(context); underTest.setAction(context.controller("my_controller").action("my_action")); }
@Test public void response_example() { MetricWs metricWs = new MetricWs(); metricWs.define(context); WebService.Action action = context.controller("api/metric").action("create"); assertThat(action.responseExampleFormat()).isEqualTo("txt"); assertThat(action.responseExample()).isNotNull(); assertThat(StringUtils.trim(action.responseExampleAsString())).isEqualTo("example of WS response"); }
@Test public void param_with_maximum_value() { ((WebService) context -> { NewController newController = context.createController("api/custom_measures"); NewAction create = newDefaultAction(newController, "create"); create.createParam("numeric_value") .setMaximumValue(10); newController.done(); }).define(context); WebService.Action action = context.controller("api/custom_measures").action("create"); assertThat(action.param("numeric_value").maximumValue()).isEqualTo(10); }
@Test public void no_web_services_by_default() { assertThat(context.controllers()).isEmpty(); assertThat(context.controller("metric")).isNull(); }
@CheckForNull public WebService.Action action(String controllerKey, String actionKey) { WebService.Controller controller = context.controller(controllerKey); if (controller != null) { return controller.action(actionKey); } return null; }
@Test public void verify_definition() { assertThat(wsTester.context().controllers()).hasSize(1); WebService.Controller controller = wsTester.context().controller("api/roots"); assertThat(controller.description()).isEqualTo("Manage root users"); assertThat(controller.since()).isEqualTo("6.2"); }
@Test public void ws_is_internal_if_all_actions_are_internal() { ((WebService) context -> { NewController newController = context.createController("api/rule"); newDefaultAction(newController, "create").setInternal(true); newDefaultAction(newController, "update").setInternal(true); newController.done(); }).define(context); assertThat(context.controller("api/rule").isInternal()).isTrue(); }
@Test public void define_controller() { WebService.Context context = new WebService.Context(); new ComponentsWs(action).define(context); WebService.Controller controller = context.controller(CONTROLLER_COMPONENTS); assertThat(controller).isNotNull(); assertThat(controller.description()).isNotEmpty(); assertThat(controller.since()).isEqualTo("4.2"); assertThat(controller.actions()).extracting(WebService.Action::key).containsExactly(actionKey); } }
@CheckForNull private WebService.Action getAction(ActionExtractor actionExtractor) { String controllerPath = actionExtractor.getController(); String actionKey = actionExtractor.getAction(); WebService.Controller controller = getContext().controller(controllerPath); return controller == null ? null : controller.action(actionKey); }