@Override
  public void define(Context context) {
    NewController languages = context.createController("api/languages")
      .setDescription("Get the list of programming languages supported in this instance.")
      .setSince("5.1");

    list.define(languages);

    languages.done();
  }
@Test
  public void should_be_well_defined() {
    WebService.Context context = new WebService.Context();

    underTest.define(context);

    Controller controller = context.controller(CONTROLLER_LANGUAGES);
    assertThat(controller).isNotNull();
    assertThat(controller.description()).isNotEmpty();
    assertThat(controller.isInternal()).isFalse();
    assertThat(controller.path()).isEqualTo(CONTROLLER_LANGUAGES);
    assertThat(controller.since()).isEqualTo("5.1");
    assertThat(controller.actions()).hasSize(1);

    Action list = controller.action(ACTION_LIST);
    assertThat(list).isNotNull();
    assertThat(list.description()).isNotEmpty();
    assertThat(list.handler()).isInstanceOf(ListAction.class);
    assertThat(list.isInternal()).isFalse();
    assertThat(list.isPost()).isFalse();
    assertThat(list.responseExampleAsString()).isNotEmpty();
    assertThat(list.params()).hasSize(2);
  }