UploadToRedmine.java
- package org.jbehave.core.io.rest.redmine;
- import static java.text.MessageFormat.format;
- import com.google.gson.Gson;
- import org.jbehave.core.io.rest.RESTClient.Type;
- import org.jbehave.core.io.rest.Resource;
- import org.jbehave.core.io.rest.UploadToREST;
- /**
- * Uploads resource to Redmine wiki pages using the REST API
- */
- public class UploadToRedmine extends UploadToREST {
- private static final String REDMINE_URI = "{0}.{1}";
- public UploadToRedmine(Type type) {
- this(type, null, null);
- }
- public UploadToRedmine(Type type, String username, String password) {
- super(type, username, password);
- }
- @Override
- protected String uri(String resourcePath, Type type) {
- return format(REDMINE_URI, resourcePath, type.name().toLowerCase());
- }
- @Override
- protected String entity(Resource resource, Type type) {
- Page page = new Page();
- page.title = resource.getName();
- page.text = resource.getContent();
- Entity entity = new Entity();
- entity.wiki_page = page;
- switch (type) {
- case JSON:
- Gson gson = new Gson();
- return gson.toJson(entity);
- case XML:
- default:
- return resource.getContent();
- }
- }
- @SuppressWarnings("checkstyle:MemberName")
- private static class Entity {
- private Page wiki_page;
- }
- private static class Page {
- private String title;
- private String text;
- }
- }